Citación del post de
Kuk
|
❞
JCantero, los párrafos de XXXX-FIN no sirven de nada tampoco. Además, muchos compiladores no compilan un párrafo vacío, así que el EXIT se convierte en obligatorio.
Las SECTION, los párrafos con -FIN y el THRU no son recomendados, yo no los uso nunca. Los puntos tampoco. El único punto obligatorio es el del final del párrafo. Los GO TO tampoco son recomendados, suelen ser prohibidos por estándar. Es preferible usar los PERFORM.
|
Uso el fin porque me va bien para situarme.
Te pongo el codigo que tengo ahora, de momento ahora me da 1 error al leer el fichero.
Un saludo y gracias!
Código COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. CJ4.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FICH1 ASSIGN TO 'APELLIDO.DAT'
ORGANIZATION IS LINE SEQUENTIAL.
SELECT FICH2 ASSIGN TO 'FICH2.DAT'
ORGANIZATION IS LINE SEQUENTIAL.
SELECT SORT-WORK ASSIGN TO SORTWORK.
DATA DIVISION.
FILE SECTION.
FD FICH1
RECORD CONTAINS 38 CHARACTERS.
01 F1-FICH1.
05 F1-IDENTIFICADOR PIC 9(07).
05 FILLER PIC X.
05 F1-APELLIDO PIC X(20).
05 FILLER PIC X.
05 F1-REGION PIC X(09).
FD FICH2
RECORD CONTAINS 38 CHARACTERS.
01 F2-FICH2.
05 F2-IDENTIFICADOR PIC 9(07).
05 FILLER PIC X.
05 F2-APELLIDO PIC X(20).
05 FILLER PIC X.
05 F2-REGION PIC X(09).
SD SORT-WORK
RECORD CONTAINS 38 CHARACTERS.
01 SORT-WORK-RECORD.
05 SW-IDENTIFICADOR PIC 9(07).
05 FILLER PIC X.
05 SW-APELLIDO PIC X(20).
05 FILLER PIC X.
05 SW-REGION PIC X(09).
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
SORT SORT-WORK
ON ASCENDING KEY SW-APELLIDO
ON ASCENDING KEY SW-REGION
INPUT PROCEDURE CARGAR
OUTPUT PROCEDURE SALIDA.
STOP RUN.
*----------------------------------------------------------------*
CARGAR SECTION.
OPEN INPUT FICH1.
PERFORM LEER.
LEER.
READ FICH1 AT END PERFORM FIN-LEER.
MOVE F1-IDENTIFICADOR TO SW-IDENTIFICADOR.
MOVE F1-APELLIDO TO SW-APELLIDO.
MOVE F1-REGION TO SW-REGION.
RELEASE SORT-WORK-RECORD.
PERFORM LEER.
FIN-LEER.
CLOSE FICH1.
FIN-LEER-FIN.
EXIT.
*----------------------------------------------------------------*
SALIDA SECTION.
OPEN OUTPUT FICH2.
PERFORM INICIAR-SALIDA.
CLOSE FICH2.
INICIAR-SALIDA.
RETURN SORT-WORK AT END GO INICIAR-SALIDA-FIN.
MOVE SW-IDENTIFICADOR TO F2-IDENTIFICADOR.
MOVE SW-APELLIDO TO F2-APELLIDO.
MOVE SW-REGION TO F2-REGION.
WRITE F2-FICH2.
PERFORM INICIAR-SALIDA.
INICIAR-SALIDA-FIN.
EXIT.
*----------------------------------------------------------------*
END PROGRAM CJ4.
*----------------------------------------------------------------*
theezraak, usa el resalto de sintaxis!
---------- Post añadido : 11:01 ---------- Post anterior : 10:12 ----------
Ya me funciona gracias al codigo de JCantero.
La verdad que parecía más facil de lo que era.
Muchas gracias a todos por las aportaciones!!!