Enterprise Resource Planning PortalERPGenie.COM Enterprise Resource Planning Portal

   Advertise | Founder BLOG

Web ERPGenie.COM  Other Search Options

Home | Vote for us |

ERPGenie.COM -> SAP Technical -> ABAP -> Example code -> Compare 2 files and show the differences

REPORT Ycompare MESSAGE-ID Z1

                NO STANDARD PAGE HEADING

*               LINE-COUNT 65

                LINE-SIZE  255.


 
*---------------------------------------------------------------------*

* Topic:         Compare 2 unix  or pc files and print the differences*

*                                                                     *


 
*                                                                     *

*---------------------------------------------------------------------*

DATA: BEGIN OF TAB1 OCCURS 0,

      LINE(5000),

      END OF TAB1.


 
DATA: BEGIN OF TAB2 OCCURS 0,

      LINE(5000),

      END OF TAB2.

DATA: PARCOM_LOC(100) TYPE C.

DATA: COLOR TYPE I.

DATA: COUNT(16) TYPE C.


 
*-------------------------------------------------------------------*

* Parameters.                                                       *

*-------------------------------------------------------------------*

SELECTION-SCREEN SKIP 2.

  PARAMETERS: PARCOM1(45) TYPE C LOWER CASE,

              PARCOM2(45) TYPE C LOWER CASE,

              PARCOM3 LIKE RLGRAP-FILENAME,

              PARCOM4 LIKE RLGRAP-FILENAME ,

              P_PC RADIOBUTTON GROUP ONE,

              P_UNIX RADIOBUTTON GROUP ONE.

*-------------------------------------------------------------------*

* Parameter validation                                              *

*-------------------------------------------------------------------*


 
*-------------------------------------------------------------------*

* TOP-OF-PAGE.                                                      *

*-------------------------------------------------------------------*

TOP-OF-PAGE.

  PERFORM WRITE_PAGE_HEADING.


 
*-------------------------------------------------------------------*

* INITIALIZATION.                                                   *

*-------------------------------------------------------------------*

INITIALIZATION.

  PARCOM1 = '/usr/sap/trans/* '.

  PARCOM2 = '/usr/sap/trans/* '.

  PARCOM3 = 'C:\TEMP\'.

  PARCOM4 = 'C:\TEMP\'.


 
*-------------------------------------------------------------------*

* START-OF-SELECTION.                                               *

*-------------------------------------------------------------------*

START-OF-SELECTION.

  IF P_UNIX = 'X'.

  PERFORM COLLECT_DATA.

  ELSE.

  PERFORM COLLECT_PC_DATA.

  ENDIF.

  PERFORM WRITE_FILE_CONTENT.

*  perform write_number_of_content.


 
*---------------------------------------------------------------------*

* FORM COLLECT_DATA.                                                  *

*---------------------------------------------------------------------*

FORM COLLECT_DATA.

    OPEN DATASET PARCOM1 FOR INPUT IN TEXT MODE.

    DO.

      READ DATASET PARCOM1 INTO TAB1.

      IF 

SY-SUBRC
 
NE

 0.

        EXIT.

      ENDIF.

      APPEND TAB1.

    ENDDO.

    CLOSE DATASET PARCOM1.


 
    OPEN DATASET PARCOM2 FOR INPUT IN TEXT MODE.

    DO.

      READ DATASET PARCOM2 INTO TAB2.

      IF 

SY-SUBRC
 
NE

 0.

        EXIT.

      ENDIF.

      APPEND TAB2.

    ENDDO.

    CLOSE DATASET PARCOM2.

ENDFORM.


 
*-------------------------------------------------------------------*

* FORM WRITE_FILE_CONTENT.                                          *

*-------------------------------------------------------------------*

FORM WRITE_FILE_CONTENT.


 
  
LOOP
 AT TAB1.

    READ TABLE TAB2 INDEX SY-TABIX.

    IF TAB1(7) = 'Element'.

       WRITE: / TAB1.

    ENDIF.

    IF TAB1 
NE TAB2
 .

       WRITE: / SY-TABIX NO-GAP, TAB1.

       WRITE: /  TAB2.

       WRITE:/1(80) SY-ULINE.


 
    ENDIF.

  ENDLOOP.

ENDFORM.


 

 
*-------------------------------------------------------------------*

* FORM WRITE_PAGE_HEADING.                                          *

*-------------------------------------------------------------------*

FORM WRITE_PAGE_HEADING.


 
   WRITE:/1(80) SY-ULINE.

   PERFORM STREGER_2.

   FORMAT INTENSIFIED.

   WRITE: /2(79) SPACE       COLOR 1.

   WRITE:  2    SY-DATUM     COLOR 1.

   IF P_UNIX = 'x'.

   WRITE: /    PARCOM1   COLOR 1.

   WRITE: 45    PARCOM2   COLOR 1.

   ELSE.

   WRITE: /    PARCOM3   COLOR 1.

   WRITE: 45    PARCOM4   COLOR 1.

   ENDIF.

   PERFORM STREGER_2.

   WRITE:/1(80) SY-ULINE.

   PERFORM STREGER_2.

   FORMAT INTENSIFIED.

   WRITE: /2(79) SPACE COLOR 3.

   WRITE:   2    'Offset' COLOR 3,

           10    '0....+....1....+....2....+....3....+....' COLOR 3,

           50    '4....+....5....+....6....+....' COLOR 3.

   PERFORM STREGER_3.

   FORMAT RESET.

   WRITE:/1(80) SY-ULINE.

ENDFORM.


 
*-------------------------------------------------------------------*

* FORM STREGER_2.                                                   *

*-------------------------------------------------------------------*

FORM STREGER_2.

   PERFORM WRITE_VLINE USING ' '  1.

   PERFORM WRITE_VLINE USING ' '  80.

ENDFORM.


 
*-------------------------------------------------------------------*

* FORM STREGER_3.                                                   *

*-------------------------------------------------------------------*

FORM STREGER_3.

   PERFORM WRITE_VLINE USING ' '  1.

   PERFORM WRITE_VLINE USING ' '  9.

   PERFORM WRITE_VLINE USING ' '  80.

ENDFORM.


 
*-------------------------------------------------------------------*

* WRITE_VLINE.                                                      *

*-------------------------------------------------------------------*

FORM WRITE_VLINE USING MODE POS.

   IF MODE NE 'T'.

     FORMAT INTENSIFIED.

   ENDIF.

   POSITION POS.

   WRITE: SY-VLINE.

   IF MODE NE 'T'.

     FORMAT RESET.

   ENDIF.

ENDFORM.


 
*-------------------------------------------------------------------*

* FORM COLORLINE.                                                   *

*-------------------------------------------------------------------*

FORM COLORLINE USING TEXT1 TEXT2.

   ON CHANGE OF SY-TABIX.

      COLOR = COLOR + 1.

      COLOR = COLOR MOD 2.

   ENDON.

   FORMAT RESET.

   IF COLOR = 1.

      WRITE: /2(79) SPACE COLOR 2.

      IF TEXT1 = '  0'.

         WRITE: 3 TEXT1 COLOR 2, 11 TEXT2 COLOR 2.

      ELSE.

         WRITE: 3 TEXT1 COLOR 2, 10 TEXT2 COLOR 2.

      ENDIF.

   ELSE.

      WRITE: /2(79) SPACE COLOR 4.

      IF TEXT1 = '  0'.

         WRITE: 3 TEXT1 COLOR 4, 11 TEXT2 COLOR 4.

      ELSE.

         WRITE: 3 TEXT1 COLOR 4, 10 TEXT2 COLOR 4.

      ENDIF.

   ENDIF.

ENDFORM.


 
*-------------------------------------------------------------------*

* FORM WRITE_NUMBER_OF_CONTENT.                                     *

*-------------------------------------------------------------------*

FORM WRITE_NUMBER_OF_CONTENT.

   DESCRIBE TABLE TAB1 LINES COUNT.


 
   FORMAT RESET. CONDENSE COUNT.

   RESERVE 3 LINES.

   WRITE:/1(80) SY-ULINE.

   WRITE: /2(79) SPACE                         COLOR 2.

   WRITE: 2      'Number of records in file:'  COLOR 2,

          29     COUNT                         COLOR 2.

   PERFORM STREGER_2.

   WRITE:/1(80) SY-ULINE.

ENDFORM.

*&---------------------------------------------------------------------*

*&      Form  COLLECT_PC_DATA

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM COLLECT_PC_DATA.


 
CALL FUNCTION 'WS_UPLOAD'

     EXPORTING

*         CODEPAGE            = ' '

          FILENAME            = PARCOM3

*         FILETYPE            = ' '

*         HEADLEN             = ' '

*         LINE_EXIT           = ' '

*         TRUNCLEN            = ' '

*         USER_FORM           = ' '

*         USER_PROG           = ' '

*    IMPORTING

*         FILELENGTH          =

     TABLES

          DATA_TAB            = TAB1

     EXCEPTIONS

          CONVERSION_ERROR    = 1

          FILE_OPEN_ERROR     = 2

          FILE_READ_ERROR     = 3

          INVALID_TABLE_WIDTH = 4

          INVALID_TYPE        = 5

          NO_BATCH            = 6

          UNKNOWN_ERROR       = 7

          OTHERS              = 8.


 
CALL FUNCTION 'WS_UPLOAD'

     EXPORTING

*         CODEPAGE            = ' '

          FILENAME            = PARCOM4

*         FILETYPE            = ' '

*         HEADLEN             = ' '

*         LINE_EXIT           = ' '

*         TRUNCLEN            = ' '

*         USER_FORM           = ' '

*         USER_PROG           = ' '

*    IMPORTING

*         FILELENGTH          =

     TABLES

          DATA_TAB            = TAB2

     EXCEPTIONS

          CONVERSION_ERROR    = 1

          FILE_OPEN_ERROR     = 2

          FILE_READ_ERROR     = 3

          INVALID_TABLE_WIDTH = 4

          INVALID_TYPE        = 5

          NO_BATCH            = 6

          UNKNOWN_ERROR       = 7

          OTHERS              = 8.

ENDFORM.                    " COLLECT_PC_DATA

Contact Us | Polls | Add URL | Contribute | About | Privacy | Terms | Feedback | Help!

Message Board | Discussion Forum | BLOG | Consultants: Post your resume | Companies: Advertise on ERPGenie.COM | Post Job
Genie Press | ERPTopSites | Financials Consultant | Consultant Review | Gallia Consulting | Supply Chain Project | SAP Financials Forum