IDENTIFICATION DIVISION.
PROGRAM-ID. EXO-INITIALIZE-15.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-CLIENT.
05 WS-NOM PIC X(20) VALUE SPACES.
05 WS-AGE PIC 99 VALUE 00.
05 WS-CODE PIC X(03) VALUE SPACES.
PROCEDURE DIVISION.
MOVE "DURAND" TO WS-NOM
MOVE 35 TO WS-AGE
MOVE "A17" TO WS-CODE
DISPLAY "Avant initialize :"
DISPLAY "Nom : " WS-NOM
DISPLAY "Age : " WS-AGE
DISPLAY "Code : " WS-CODE
INITIALIZE WS-CLIENT
DISPLAY "Apres initialize :"
DISPLAY "Nom : " WS-NOM
DISPLAY "Age : " WS-AGE
DISPLAY "Code : " WS-CODE
STOP RUN.
Lecture simple
Le groupe WS-CLIENT contient trois champs. Après avoir mis des valeurs, on affiche “avant”. Puis INITIALIZE WS-CLIENT remet tout le groupe à l’état initial : les champs texte redeviennent des espaces, les champs numériques redeviennent zéro.
Votre micro-exercice
Faites ces 3 modifications :
- Ajoutez un champ WS-VILLE PIC X(15) dans le groupe, puis testez l’initialisation.
- Ajoutez un second client WS-CLIENT-2 et initialisez-le aussi.
- Ajoutez un message “Reinitialisation terminee.” juste après INITIALIZE.
Erreur fréquente à éviter
Confondre “INITIALIZE” et “MOVE ZERO”. MOVE ZERO marche bien pour un seul champ numérique, mais pour un groupe mélangeant texte et nombres, INITIALIZE est plus sûr et plus rapide à lire.
Autre piège : penser que INITIALIZE remet une valeur “personnalisée” (par exemple une valeur par défaut). En réalité, il remet les champs à une valeur “neutre” (espaces ou zéros), sauf options avancées.