Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.
Objectif : apprendre à dialoguer avec l’utilisateur en console grâce à
DISPLAY et ACCEPT ,
et construire un “prompt” propre avec WITH NO ADVANCING .
DISPLAY , vous lisez avec
ACCEPT . Le détail important est que vos champs texte sont souvent
à longueur fixe, donc les espaces comptent.
Trois instructions suffisent pour démarrer un dialogue en console :
DISPLAY
ACCEPT
WITH NO ADVANCING
Programme minimal : il affiche une question, lit une réponse, puis réaffiche la valeur entre crochets pour rendre visibles les espaces.
>>SOURCE FORMAT FREE
IDENTIFICATION DIVISION.
PROGRAM-ID. DEMO-IO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-SAISIE PIC X(30) VALUE SPACES.
PROCEDURE DIVISION.
DISPLAY "Entrez votre ville : " WITH NO ADVANCING
ACCEPT WS-SAISIE
DISPLAY "Vous avez saisi : [" WS-SAISIE "]"
STOP RUN.
cobc -x -free demo-io.cbl
./demo-io).
Les entrées/sorties console semblent simples, mais deux détails reviennent souvent.
PIC X(30) ,
la fin est perdue (ou tronquée).
[...] ou des guillemets '...'.
Pour vérifier une saisie, affichez toujours avec un marqueur : [valeur]. Cela rend visibles les espaces restants.
Les champs texte étant souvent à longueur fixe, une partie du champ reste composée d’espaces.
Encadrer l’affichage avec [...] ou '...' évite les confusions et améliore l’apprentissage.
DISPLAY avec
WITH NO ADVANCING ,
puis ACCEPT sur la ligne suivante.
>>SOURCE FORMAT FREE
IDENTIFICATION DIVISION.
PROGRAM-ID. EXO-HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PRENOM PIC X(20) VALUE SPACES.
PROCEDURE DIVISION.
DISPLAY "Entrez votre prenom : " WITH NO ADVANCING
ACCEPT WS-PRENOM
DISPLAY "Bienvenue [" WS-PRENOM "]"
STOP RUN.
>>SOURCE FORMAT FREE
IDENTIFICATION DIVISION.
PROGRAM-ID. EXO-PRENOM-VILLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PRENOM PIC X(20) VALUE SPACES.
01 WS-VILLE PIC X(20) VALUE SPACES.
PROCEDURE DIVISION.
DISPLAY "Prenom : " WITH NO ADVANCING
ACCEPT WS-PRENOM
DISPLAY "Ville : " WITH NO ADVANCING
ACCEPT WS-VILLE
DISPLAY "[" WS-PRENOM "] habite a [" WS-VILLE "]"
STOP RUN.