Apprendre COBOL – Les bases

Fichiers séquentiels – Lecture (SELECT, FD, OPEN, READ, CLOSE)

COBOL excelle dans le traitement de fichiers. Ici, nous commençons par la lecture d’un fichier texte séquentiel (le type le plus simple). Cela implique de déclarer le fichier dans l’ENVIRONMENT DIVISION et la DATA DIVISION, puis d’utiliser les verbes OPEN, READ et CLOSE dans la PROCEDURE DIVISION.

Exemple de code : Lecture et affichage d’un fichier texte

IDENTIFICATION DIVISION.
PROGRAM-ID. LECTURE-FICHIER.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT FICHIER-CLIENTS ASSIGN TO "clients.txt"
           ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD  FICHIER-CLIENTS.
01  ENREGISTREMENT-CLIENT.
    05  NUMERO            PIC 9(5).
    05  NOM               PIC X(20).
    05  PRENOM            PIC X(15).
    05  VILLE             PIC X(25).

WORKING-STORAGE SECTION.
01  FIN-FICHIER           PIC X       VALUE "N".

PROCEDURE DIVISION.
    OPEN INPUT FICHIER-CLIENTS.

    PERFORM UNTIL FIN-FICHIER = "O"
        READ FICHIER-CLIENTS
            AT END
                MOVE "O" TO FIN-FICHIER
            NOT AT END
                DISPLAY NUMERO "  " NOM " " PRENOM " - " VILLE
        END-READ
    END-PERFORM.

    CLOSE FICHIER-CLIENTS.

    DISPLAY SPACE.
    DISPLAY "Lecture terminée.".
    STOP RUN.
        
Télécharger le code

Exemple de fichier clients.txt attendu

00001DUPONT     Jean           Paris                    
00002MARTIN     Sophie         Lyon                     
00003BERNARD    Lucas          Marseille                
00004DURAND     Emma           Bordeaux                 
        

Résultat attendu à l'exécution

00001  DUPONT     Jean            - Paris                    
00002  MARTIN     Sophie          - Lyon                     
00003  BERNARD    Lucas           - Marseille                
00004  DURAND     Emma            - Bordeaux                 

Lecture terminée.
        

Explication détaillée – focus sur les instructions fichier

Conseils pour débutants :
• Les longueurs des champs dans FD doivent correspondre exactement au fichier réel.
• LINE SEQUENTIAL ignore les sauts de ligne ; idéal pour les .txt
• Testez toujours avec un petit fichier connu.
• En cas d’erreur d’ouverture ou de lecture → le programme peut s’arrêter brutalement (on verra les FILE STATUS plus tard).
Attention : Ce programme suppose que le fichier "clients.txt" existe dans le même dossier que l’exécutable. Si le fichier est absent, la plupart des compilateurs génèrent une erreur à l’OPEN.

Prochain sujet : Écriture dans un fichier séquentiel (OPEN OUTPUT, WRITE) et création d’un nouveau fichier.