Lire un fichier et compter les lignes
Dans ce cours très simple, on va :
- Ouvrir le fichier amis.txt (celui créé dans le premier cours)
- Lire chaque ligne
- Compter combien il y a de lignes (nombre d’amis)
- Afficher le total à la fin
READ et une petite variable compteur.
Exemple de code : Compter les amis dans amis.txt
IDENTIFICATION DIVISION.
PROGRAM-ID. COMPTER-AMIS.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MES-AMIS ASSIGN TO "amis.txt"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD MES-AMIS.
01 LIGNE-AMIE PIC X(40).
WORKING-STORAGE SECTION.
01 NOMBRE-AMIS PIC 9(3) VALUE ZERO.
01 FIN-FICHIER PIC X VALUE "N".
PROCEDURE DIVISION.
OPEN INPUT MES-AMIS.
PERFORM UNTIL FIN-FICHIER = "O"
READ MES-AMIS
AT END
MOVE "O" TO FIN-FICHIER
NOT AT END
ADD 1 TO NOMBRE-AMIS
DISPLAY LIGNE-AMIE
END-READ
END-PERFORM.
CLOSE MES-AMIS.
DISPLAY SPACE.
DISPLAY "Nombre total d'amis : " NOMBRE-AMIS.
DISPLAY "Lecture terminée.".
STOP RUN.
Télécharger le code
Résultat attendu (si amis.txt contient 3 lignes)
Alice - Paris
Bob - Lyon
Charlie - Marseille
Nombre total d'amis : 003
Lecture terminée.
Explication très simple – les nouveautés
- 01 NOMBRE-AMIS PIC 9(3) VALUE ZERO.
Une petite variable qui commence à 0. On va l’augmenter de 1 à chaque ligne lue. - ADD 1 TO NOMBRE-AMIS
À chaque fois qu’on lit une ligne (dans le blocNOT AT END), on ajoute 1 au compteur. - DISPLAY "Nombre total d'amis : " NOMBRE-AMIS.
À la fin, on affiche le total. COBOL affiche le nombre avec des zéros à gauche si besoin (ex. 003 au lieu de 3).
Ce qu’il faut retenir :
• Une variable compteur (
• On met le compteur à 0 au début (
• On affiche le résultat après avoir fermé le fichier
• Une variable compteur (
ADD 1 TO ...) suffit pour compter• On met le compteur à 0 au début (
VALUE ZERO)• On affiche le résultat après avoir fermé le fichier
Exercice facile : Modifie le programme pour qu’il affiche aussi le **nom du premier ami** qu’il lit (indice : utilise une variable pour garder la première ligne).
Prochain sujet simple : Lire le fichier et afficher **seulement les amis qui habitent à Paris** (premier filtre simple).