Bonjour,
je fais actuellemnt une formation COBOL avec OPENCOBOL.
Mon PB est de lire plusieurs valeurs avec READ .... NEXT satisfaisant à la même clef secondaire après positionnement avec un START.
Mais ça ne marche pas car le read next me retourne toutes les valeurs m^me celles qui ne concernent pas la clef.
Avez vous la solution ?
Exemple du source :
IDENTIFICATION DIVISION.
PROGRAM-ID. COMM.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT OPTIONAL ix12 ASSIGN TO "ix12.idx"
ORGANIZATION INDEXED
RECORD KEY IS X-IDENT12
ACCESS MODE IS DYNAMIC
ALTERNATE RECORD KEY IS X-CODINSEE12
WITH DUPLICATES.
DATA DIVISION.
FILE SECTION.
FD ix12.
01 ARTix12.
05 X-IDENT12 PIC X(013).
05 X-NOM12 PIC X(030).
05 X-PRENOM12 PIC X(030).
05 X-NORUE12 PIC X(008).
05 X-RUE12 PIC X(030).
05 X-CODPOST12 PIC X(005).
05 X-CODINSEE12 PIC X(005).
05 X-INFOS12 PIC X(100).
WORKING-STORAGE SECTION.
77 W-NOM PIC X(30).
77 W-REPONSE PIC X(5).
01 FIN-ENREG-ix12 PIC X(01) VALUE SPACE.
88 FF-ix12
VALUE HIGH-VALUE.
PROCEDURE DIVISION.
DEB-PGM.
* ouverture de(s) fichier(s)
OPEN I-O ix12
DISPLAY "Saisie du CODE INSEE X5 : " NO ADVANCING
ACCEPT W-REPONSE
MOVE W-REPONSE TO X-CODINSEE12
START ix12 KEY IS = X-CODINSEE12
* READ ix12
INVALID KEY
DISPLAY "Le code insee : " X-CODINSEE12 "N'existe pas"
NOT INVALID KEY
PERFORM UNTIL FF-ix12
READ ix12 NEXT
AT END
SET FF-ix12 TO TRUE
NOT AT END
DISPLAY "Nom trouvé est : "
X-NOM12 " " X-IDENT12 " "X-CODINSEE12
END-READ
END-PERFORM
* END-READ
END-START
CLOSE ix12
.
FIN-PGM.
STOP RUN.
Partager