Ayuda
Publicado por Chica-Novata (1 intervención) el 25/08/2011 18:47:26
Hola, estoy estudiando cobol y estoy liada con algo, necesito ayuda haber si alguien me pueda echar una mano con este tema. Lo que pretendo es pasar 3 registro de un archivo sequencial llamado (alta) a un archivo indexado llamado (cliente). No tengo ni idea de como hacerlo, me confundo con la invalid key y no invalid key, alguien me puede echar una mano viendo el código por favor. Muchas gracias de antemano.
IDENTIFICATION DIVISION.
PROGRAM-ID. EJERCICIO.
AUTHOR. LA NOVATA.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ALTA ASSIGN TO DISK 'ALTAS.DAT'
ORGANIZATION LINE SEQUENTIAL
ACCESS SEQUENTIAL.
SELECT CLIENTE ASSIGN TO DISK 'CLIENTES.DAT'
ORGANIZATION INDEXED
ACCESS RANDOM
RECORD KEY CODIGO
ALTERNATE RECORD KEY NOMBRE DUPLICATES.
DATA DIVISION.
FILE SECTION.
FD ALTA
LABEL RECORD STANDARD.
01 REG-ALTA.
02 COD PIC X.
02 NOM PIC X(5).
02 IMP PIC X(25).
FD CLIENTE
LABEL RECORD STANDARD.
01 REG-CLI.
02 CODIGO PIC X(5).
02 NOMBRE PIC X(25).
02 POBLACION PIC X(25).
02 IMPORTE PIC 9(6)V9(2).
02 ALTA.
03 ANIO PIC X(4).
03 MES PIC X(2).
03 DIA PIC X(2).
WORKING-STORAGE SECTION.
77 FIN PIC X.
PROCEDURE DIVISION.
INICIO-PROGRAMA.
OPEN INPUT ALTA.
OPEN I-O CLIENTE.
MOVE 'N' TO FIN.
READ ALTA AT END MOVE 'S' TO FIN
END-READ.
PERFORM UNTIL FIN = 'S'
WRITE CLIENTE INVALID
MOVE COD OF REG-ALTA TO CODIGO
MOVE NOM OF REG-ALTA TO NOMBRE
MOVE IMP OF REG-ALTA TO IMPORTE
WRITE REG-CLI
NOT INVALID
DISPLAY ' El cliente YA existe'
END-WRITE
READ ALTA AT END MOVE 'S' TO FIN
END-READ
END-PERFORM.
DISPLAY SPACES ERASE
DISPLAY CODIGO '-' NOMBRE '-' I MPORTE
CLOSE ALTA.
CLOSE CLIENTE.
IDENTIFICATION DIVISION.
PROGRAM-ID. EJERCICIO.
AUTHOR. LA NOVATA.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ALTA ASSIGN TO DISK 'ALTAS.DAT'
ORGANIZATION LINE SEQUENTIAL
ACCESS SEQUENTIAL.
SELECT CLIENTE ASSIGN TO DISK 'CLIENTES.DAT'
ORGANIZATION INDEXED
ACCESS RANDOM
RECORD KEY CODIGO
ALTERNATE RECORD KEY NOMBRE DUPLICATES.
DATA DIVISION.
FILE SECTION.
FD ALTA
LABEL RECORD STANDARD.
01 REG-ALTA.
02 COD PIC X.
02 NOM PIC X(5).
02 IMP PIC X(25).
FD CLIENTE
LABEL RECORD STANDARD.
01 REG-CLI.
02 CODIGO PIC X(5).
02 NOMBRE PIC X(25).
02 POBLACION PIC X(25).
02 IMPORTE PIC 9(6)V9(2).
02 ALTA.
03 ANIO PIC X(4).
03 MES PIC X(2).
03 DIA PIC X(2).
WORKING-STORAGE SECTION.
77 FIN PIC X.
PROCEDURE DIVISION.
INICIO-PROGRAMA.
OPEN INPUT ALTA.
OPEN I-O CLIENTE.
MOVE 'N' TO FIN.
READ ALTA AT END MOVE 'S' TO FIN
END-READ.
PERFORM UNTIL FIN = 'S'
WRITE CLIENTE INVALID
MOVE COD OF REG-ALTA TO CODIGO
MOVE NOM OF REG-ALTA TO NOMBRE
MOVE IMP OF REG-ALTA TO IMPORTE
WRITE REG-CLI
NOT INVALID
DISPLAY ' El cliente YA existe'
END-WRITE
READ ALTA AT END MOVE 'S' TO FIN
END-READ
END-PERFORM.
DISPLAY SPACES ERASE
DISPLAY CODIGO '-' NOMBRE '-' I MPORTE
CLOSE ALTA.
CLOSE CLIENTE.
Valora esta pregunta


0