@dariodr, Es que pides el nombre con cada read.
Pide el nombre y después comprueba si está.
Así
Código COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. prg002.
ENVIRONMENT DIVISION.
INPUT-OUTPUT section.
FILE-CONTROL.
SELECT agenda ASSIGN to "agenda.txt"
ORGANIZATION LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD agenda.
01 agenda-rec.
03 codigo PIC 9(5).
03 nombre PIC x(10).
03 salario pic 9(5)V99.
WORKING-STORAGE SECTION.
77 FIN-ARCHIVO PIC x.
77 N-NOMBRE PIC X(10).
PROCEDURE DIVISION.
MAIN-PROCEDURE.
perform aceptar-nombre.
OPEN INPUT agenda.
PERFORM proceso UNTIL FIN-ARCHIVO = 'S'.
CLOSE agenda.
STOP RUN.
proceso.
READ agenda
AT END MOVE 'S' TO FIN-ARCHIVO
NOT AT END PERFORM BUSCA-REGISTRO
END-READ.
Aceptar-nombre.
DISPLAY 'NOMBRE A BUSCAR: ' NO ADVANCING.
ACCEPT N-NOMBRE.
*Rutina para buscar un registro
BUSCA-REGISTRO.
IF N-NOMBRE = nombre
DISPLAY codigo
DISPLAY salario
END-IF.
END PROGRAM prg002.