Bienvenue dans la formation COBOL

Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.

Info : Ce module vous permet d’accéder rapidement aux contenus essentiels de la formation COBOL.
Retour au plan général

Instruction accept : lire une saisie et la stocker dans une variable

L’instruction  ACCEPT  permet de récupérer une valeur saisie par l’utilisateur (le plus souvent au clavier) et de la placer dans un champ défini dans la  WORKING-STORAGE  SECTION . C’est une étape essentielle pour rendre un programme interactif, mais aussi un moment où l’on découvre la “réalité Cobol” : les champs ont une longueur fixe, et les espaces de fin peuvent masquer ce qui a été réellement saisi.

Entrée Clavier Pratique
🧠

Conceptualiser

Notions clés

 ACCEPT  copie une entrée dans un champ. Le champ doit être déclaré avant usage. En pratique, on utilise très souvent un champ texte pour éviter les surprises lors de la saisie.

📦
Champ cible obligatoire
Le champ destinataire doit exister dans la  DATA  DIVISION , le plus souvent en  WORKING-STORAGE .
📏
Longueur fixe
Un champ  PIC  X(10)  stocke 10 caractères maximum : si l’utilisateur saisit plus, le reste peut être perdu.
Espaces invisibles
Les champs texte sont complétés par des espaces à droite. Pour voir ce qui a été réellement saisi, affichez avec des marqueurs : [...] ou "...".
⚠️
Conseil pédagogique
Pour débuter, lisez d’abord dans un champ texte ( PIC  X ), puis convertissez/validez si vous avez besoin d’un numérique. Cela vous évite une grande partie des erreurs de saisie.
🧪

Opérer

Exemple exécutable

Ce programme lit un prénom, puis l’affiche en montrant les espaces grâce aux crochets. Le prompt est affiché sans retour à la ligne grâce à  WITH  NO  ADVANCING .

🧾 Fichier : demo-accept.cbl
Cobol (format libre)

 >>SOURCE FORMAT FREE
 IDENTIFICATION DIVISION.
 PROGRAM-ID. DEMO-ACCEPT.

 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 "Saisie = [" WS-PRENOM "]"
    STOP RUN.
✅ Bon réflexe
Encadrer la valeur affichée est un excellent outil de contrôle : vous voyez immédiatement si le champ contient des espaces, s’il a été tronqué, ou s’il n’a pas été alimenté.
🧭 Variante utile
Si vous voulez afficher un message sur une ligne et la saisie sur la suivante, supprimez  WITH  NO  ADVANCING .

Champ trop court
Si votre champ est  X(10)  et que l’utilisateur saisit 25 caractères, vous ne récupérerez que le début. Agrandissez le champ ou contrôlez la saisie.
Saisie “vide” ou trompeuse
Un champ peut contenir uniquement des espaces. Affichez toujours avec des marqueurs : [ valeur ], sinon vous ne verrez rien.
🧩
Explorer : exercices
1) Demandez le prénom puis la ville, et affichez les deux avec des crochets.
2) Réduisez volontairement le champ à  X(5)  et observez la troncature.
3) Ajoutez un second affichage : "Longueur max = 20" pour vous rappeler le contrat du champ.

↑ Haut