Buenos días, tengo un ejercicio de practica, y tengo que pasar de CSV a texto planto, con ciertos requisitos (2 campos ordenados en ascendente).
Y me da 1 error mi programa que es al abrir el fichero, pero no sé que más hacer.
Agradecería que alguien me lo explicara, un saludo.
Os dejo aquí el programita:
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 'APELLIDOS.csv'
ORGANIZATION IS LINE SEQUENTIAL
ACCESS MODE IS 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 DATOS.
05 IDENTIFICADOR PIC 9(07).
05 FILLER PIC X.
05 APELLIDO PIC X(20).
05 FILLER PIC X.
05 REGION PIC X(09).
FD FICH2
RECORD CONTAINS 38 CHARACTERS.
01 DATOS-2.
05 IDENTIFICADOR-2 PIC 9(07).
05 FILLER PIC X.
05 APELLIDO-2 PIC X(20).
05 FILLER PIC X.
05 REGION-2 PIC X(09).
SD SORT-WORK
RECORD CONTAINS 38 CHARACTERS.
01 SORT-WORK-RECORD.
05 SW-APELLIDO PIC 9(07).
05 FILLER PIC X.
05 SW-REGION PIC X(09).
05 FILLER PIC X(21).
WORKING-STORAGE SECTION.
01 LINEA.
02 LIDEN PIC 9(07)BB.
02 LAPELL PIC X(20)BB.
02 LREG PIC X(09).
01 OP PIC X.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
PERFORM INICIALIZAR-FICHEROS
SORT SORT-WORK
ON ASCENDING KEY APELLIDO
ON ASCENDING KEY REGION
INPUT PROCEDURE CARGAR
OUTPUT PROCEDURE SALIDA
.
*----------------------------------------------------------------*
INICIALIZAR-FICHEROS.
OPEN INPUT FICH1
OPEN OUTPUT FICH2
.
INICIALIZAR-FICHEROS-FIN.
EXIT.
*----------------------------------------------------------------*
CARGAR.
OPEN INPUT FICH1
PERFORM LEER
PERFORM FIN-FICH
.
CARGAR-FIN.
EXIT.
*----------------------------------------------------------------*
LEER.
READ FICH1 NEXT RECORD AT END GO FIN-FICH.
MOVE APELLIDO TO SW-APELLIDO.
MOVE REGION TO SW-REGION.
RELEASE SORT-WORK-RECORD.
LEER-FIN.
EXIT.
*----------------------------------------------------------------*
FIN-FICH.
CLOSE FICH1.
FIN-FICH-FIN.
EXIT.
*----------------------------------------------------------------*
SALIDA.
PERFORM INICIAR-SALIDA.
PERFORM FIN-SALIDA.
SALIDA-FIN.
EXIT.
*----------------------------------------------------------------*
INICIAR-SALIDA.
RETURN SORT-WORK AT END GO FIN-SALIDA.
MOVE SW-APELLIDO TO APELLIDO-2.
MOVE SW-REGION TO REGION-2.
DISPLAY LINEA LINE 20.
ACCEPT OP LINE 21.
GO INICIAR-SALIDA.
INICIAR-SALIDA-FIN.
EXIT.
*----------------------------------------------------------------*
FIN-SALIDA.
EXIT.
FIN-SALIDA-FIN.
EXIT.
*----------------------------------------------------------------*
CLOSE FICH1.
CLOSE FICH2.
STOP RUN.
END PROGRAM CJ4.