Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.
En Cobol, une saisie n’est jamais “magique” : elle est toujours copiée dans un champ qui a été déclaré à l’avance. Cette logique est centrale en informatique de gestion : chaque donnée possède une taille, un type, un format, et donc un “contrat” de stockage. Comprendre ce mécanisme vous évite les surprises : troncatures, espaces invisibles, incohérences entre texte et numérique, ou valeurs qui semblent vides alors qu’elles sont bien présentes.
Une donnée saisie (via ACCEPT ) est placée dans une variable.
Cette variable est définie dans la
DATA DIVISION ,
généralement dans la
WORKING-STORAGE SECTION .
PIC X(20) ,
9(3) , etc.
La saisie est copiée dans cette zone, pas ailleurs.
[ et ].
X ),
puis validez/convertissez avant de la placer dans un champ numérique.
Cela rend vos programmes plus robustes et vous apprend à contrôler les formats.
Le programme ci-dessous montre une saisie stockée dans des variables déclarées, puis affichée de manière lisible. Les crochets permettent de constater les espaces de fin.
>>SOURCE FORMAT FREE
IDENTIFICATION DIVISION.
PROGRAM-ID. DEMO-STOCKAGE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PRENOM PIC X(20) VALUE SPACES.
01 WS-VILLE PIC X(20) VALUE SPACES.
01 WS-AGE-TXT PIC X(3) VALUE SPACES.
01 WS-AGE PIC 9(3) VALUE 0.
PROCEDURE DIVISION.
DISPLAY "Prenom : " WITH NO ADVANCING
ACCEPT WS-PRENOM
DISPLAY "Ville : " WITH NO ADVANCING
ACCEPT WS-VILLE
DISPLAY "Age : " WITH NO ADVANCING
ACCEPT WS-AGE-TXT
IF WS-AGE-TXT IS NUMERIC
MOVE WS-AGE-TXT TO WS-AGE
ELSE
MOVE 0 TO WS-AGE
END-IF
DISPLAY "--- Verification stockage ---"
DISPLAY "Prenom = [" WS-PRENOM "]"
DISPLAY "Ville = [" WS-VILLE "]"
DISPLAY "AgeTxt = [" WS-AGE-TXT "]"
DISPLAY "AgeNum = " WS-AGE
STOP RUN.
IS NUMERIC) WS-AGE-TXT , vous validez, puis vous stockez dans
WS-AGE seulement si la valeur est correcte.
X(10) ), une saisie plus longue sera coupée.
Solution : agrandir le champ ou contrôler la longueur.
9(3) sans validation peut provoquer des comportements différents selon l’environnement.
Solution : lire en texte, tester, puis déplacer.
WS-VILLE à X(5) et observez la troncature. X(5) ) et affichez-le encadré.