Ver Mensaje Individual
  #5
Antiguo 22 de octubre de 2016, 03:44
Hrmcobol
Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por implicación en la vida del Foro 
Última Actividad 01.03.2022 02:59
Posts Posts: 323
Likes enviados Enviados: 102
Likes recibidos Recibidos: 120

Hola Amigo, este código lee un archivo y graba otro ordenado por dos campos. Saque y cambie algunas cosas, no recuerdo bien como era el tema del sort interno, pero si compila debería funcionar.

Coboleros si leen esto revisar por favor. Saludos a todos

Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. CJ4.
  3.        ENVIRONMENT DIVISION.
  4.        CONFIGURATION SECTION.
  5.        SPECIAL-NAMES.
  6.             DECIMAL-POINT IS COMMA.
  7.        INPUT-OUTPUT SECTION.
  8.        FILE-CONTROL.
  9.  
  10.             SELECT FICH1     ASSIGN TO 'FICH1.CSV'
  11.                              ORGANIZATION IS LINE SEQUENTIAL.
  12.  
  13.             SELECT FICH2     ASSIGN TO 'FICH2.DAT'
  14.                              ORGANIZATION IS LINE SEQUENTIAL.
  15.  
  16.             SELECT SORT-WORK ASSIGN TO SORTWORK.
  17.  
  18.        DATA DIVISION.
  19.        FILE SECTION.
  20.  
  21.        FD  FICH1
  22.            RECORD CONTAINS 38 CHARACTERS.
  23.        01  F1-FICH1.
  24.            05 F1-IDENTIFICADOR     PIC 9(07).
  25.            05    FILLER            PIC X.
  26.            05 F1-APELLIDO          PIC X(20).
  27.            05    FILLER            PIC X.
  28.            05 F1-REGION            PIC X(09).
  29.  
  30.        FD  FICH2
  31.            RECORD CONTAINS 38 CHARACTERS.
  32.        01  F2-FICH2.
  33.            05 F2-IDENTIFICADOR     PIC 9(07).
  34.            05    FILLER            PIC X.
  35.            05 F2-APELLIDO          PIC X(20).
  36.            05    FILLER            PIC X.
  37.            05 F2-REGION            PIC X(09).
  38.  
  39.        SD  SORT-WORK
  40.             RECORD CONTAINS  38 CHARACTERS.
  41.        01  SORT-WORK-RECORD.
  42.            05 SW-IDENTIFICADOR     PIC 9(07).
  43.            05    FILLER            PIC X.
  44.            05 SW-APELLIDO          PIC X(20).
  45.            05    FILLER            PIC X.
  46.            05 SW-REGION            PIC X(09).
  47.  
  48.  
  49.        WORKING-STORAGE SECTION.
  50.  
  51.        PROCEDURE DIVISION.
  52.        MAIN-PROCEDURE SECTION.
  53.  
  54.            PERFORM INICIALIZAR-FICHEROS
  55.            SORT SORT-WORK
  56.                 ON ASCENDING KEY SW-APELLIDO
  57.                 ON ASCENDING KEY SW-REGION
  58.            INPUT  PROCEDURE CARGAR   *> Me parece que los Procedure deben ser Section
  59.            OUTPUT PROCEDURE SALIDA.  *> y una section termina en otra section
  60.            
  61.            STOP RUN.
  62.      *----------------------------------------------------------------*
  63.        END PROGRAM CJ4.
  64.      *----------------------------------------------------------------*
  65.        CARGAR SECTION.
  66.            OPEN INPUT FICH1
  67.            PERFORM LEER THRU LEER-FIN
  68.            CLOSE FICH1.
  69.        CARGAR-FIN SECTION.
  70.            EXIT.
  71.      *----------------------------------------------------------------*
  72.        LEER.
  73.            READ FICH1 NEXT RECORD AT END GO LEER-FIN.
  74.            MOVE F1-IDENTIFICADOR TO SW-IDENTIFICADOR.
  75.            MOVE F1-APELLIDO      TO SW-APELLIDO.
  76.            MOVE F1-REGION        TO SW-REGION.
  77.            RELEASE SORT-WORK-RECORD.
  78.            GO TO LEER.
  79.        LEER-FIN.
  80.            EXIT.
  81.      *----------------------------------------------------------------*
  82.        SALIDA SECTION.
  83.            OPEN OUTPUT FICH2
  84.            PERFORM INICIAR-SALIDA.
  85.            CLOSE FICH2
  86.        SALIDA-FIN SECTION.
  87.            EXIT.
  88.      *----------------------------------------------------------------*
  89.        INICIAR-SALIDA.
  90.            RETURN SORT-WORK AT END GO INICIAR-SALIDA-FIN.
  91.            MOVE SW-IDENTIFICADOR TO F2-IDENTIFICADOR.
  92.            MOVE SW-APELLIDO      TO F2-APELLIDO.
  93.            MOVE SW-REGION        TO F2-REGION.
  94.            WRITE F2-FICH2.
  95.            GO TO INICIAR-SALIDA.
  96.        INICIAR-SALIDA-FIN.
  97.            EXIT.
  98.      *----------------------------------------------------------------*
  99.    
Hrmcobol is offline   Responder Con Cita