Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

ZCOMPARE PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Utilidades con ficheros
Escrito por Administrator   
Lunes, 07 de Julio de 2003 20:06

Compara 2 ficheros Unix o PC y muestra las diferencias:

 

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

Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Actualizado ( Jueves, 17 de Julio de 2008 10:42 )
 
home search