Lecture séquentielle avec la FILE SECTION
Ce programme COBOL montre comment lire un fichier texte ligne par ligne à l’aide de la
FILE SECTION. Il introduit les instructions SELECT, READ et l’utilisation d’un indicateur logique de fin de fichier.
1. Code source du programme
IDENTIFICATION DIVISION.
PROGRAM-ID. PactaReader.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT InputFile ASSIGN TO "pactademo.txt"
ORGANIZATION IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD InputFile.
01 LineContent PIC X(80).
WORKING-STORAGE SECTION.
01 DoneFlag PIC X VALUE "N".
88 Done VALUE "Y".
88 NotDone VALUE "N".
PROCEDURE DIVISION.
Main.
OPEN INPUT InputFile
PERFORM UNTIL Done
READ InputFile
AT END
SET Done TO TRUE
NOT AT END
DISPLAY LineContent
END-READ
END-PERFORM
CLOSE InputFile
STOP RUN.
2. Rôle de chaque division
| Division | Description |
|---|---|
ENVIRONMENT DIVISION |
Déclare les fichiers externes utilisés par le programme. |
FILE-CONTROL |
Associe le nom logique InputFile au fichier physique pactademo.txt. |
FILE SECTION |
Décrit la structure de chaque enregistrement du fichier lu. |
WORKING-STORAGE SECTION |
Contient l’indicateur de fin de fichier (DoneFlag). |
PROCEDURE DIVISION |
Lit le fichier ligne par ligne et affiche son contenu. |
3. Explication de la FILE SECTION
La
FILE SECTION est l’endroit où l’on décrit le contenu du fichier ligne par ligne. Ici, chaque ligne est lue dans une variable de 80 caractères nommée LineContent.
FD InputFile.
01 LineContent PIC X(80).
4. Contrôle de la fin de fichier
01 DoneFlag PIC X VALUE "N".
88 Done VALUE "Y".
88 NotDone VALUE "N".
Le niveau 88 permet de nommer des états logiques. Ici, le programme continue tant que Done n’est pas atteint.
5. Boucle de lecture
PERFORM UNTIL Done
READ InputFile
AT END
SET Done TO TRUE
NOT AT END
DISPLAY LineContent
END-READ
END-PERFORM
Cette boucle lit une ligne à la fois jusqu’à la fin du fichier. Chaque ligne est affichée immédiatement après la lecture.
6. Exemple de fichier pactademo.txt
Première ligne COBOL
Deuxième ligne test
Troisième ligne lue
7. Résultat affiché dans la console
Première ligne COBOL
Deuxième ligne test
Troisième ligne lue
8. À retenir
- Le mot-clé
SELECTrelie un nom logique à un fichier externe. - La
FILE SECTIONdécrit comment chaque ligne du fichier sera lue. - Les niveaux
88permettent de rendre le code plus lisible. - La lecture se fait ligne par ligne avec la clause
READet la gestion deAT END.