Comprendre la WORKING-STORAGE SECTION en COBOL
WORKING-STORAGE SECTION est l’endroit où le programme COBOL réserve de l’espace pour les données dont il a besoin pendant son exécution. Ces données peuvent être des textes, des nombres, ou des indicateurs logiques.
1. À quoi sert cette section ?
Elle permet de définir toutes les variables internes au programme. Contrairement aux fichiers, ces données ne viennent pas de l'extérieur. Ce sont des éléments que vous, programmeur, choisissez pour suivre un état, faire des calculs, afficher des messages, etc.
2. Exemple de structure simple
WORKING-STORAGE SECTION.
77 ChoixMenu PIC X VALUE SPACE.
88 OptionVoirListe VALUE "A".
88 OptionCalculer VALUE "B".
88 OptionQuitter VALUE "Z".
77 FinLecture PIC X VALUE "N".
88 Terminé VALUE "O".
01 LigneTitre PIC X(60).
01 TotalArticles PIC 9(4) VALUE ZERO.
Dans cet exemple, plusieurs variables sont déclarées pour gérer un menu, un drapeau de fin de lecture, un message affiché à l’écran, et une valeur numérique.
3. Décomposition des éléments
| Niveau | Nom | Type | Rôle |
|---|---|---|---|
77 |
ChoixMenu |
PIC X |
Stocke le caractère saisi dans le menu principal |
88 |
OptionVoirListe, etc. |
Valeur symbolique | Rend le code plus lisible pour tester une option |
01 |
LigneTitre |
PIC X(60) |
Contient un message de titre à afficher |
01 |
TotalArticles |
PIC 9(4) |
Variable numérique pour un total |
4. Test logique avec niveau 88
IF OptionCalculer
PERFORM EffectuerOperation
END-IF
Ici, au lieu d’écrire IF ChoixMenu = "B", on utilise une valeur conditionnelle plus lisible : OptionCalculer.
5. Pourquoi utiliser le niveau 77 ?
Le niveau 77 est utilisé pour des variables simples qui ne contiennent pas de sous-champs. Il est souvent utilisé pour les drapeaux ou les valeurs de contrôle uniques.
WORKING-STORAGE SECTION sont créées une fois pour toute la durée du programme. Elles sont disponibles à tout moment, tant que le programme tourne.
6. Exemple d’utilisation typique
DISPLAY "Menu principal"
ACCEPT ChoixMenu
IF OptionVoirListe
PERFORM AfficherTout
ELSE IF OptionQuitter
STOP RUN
END-IF
Ce code montre comment une variable de type caractère est testée à l’aide de plusieurs conditions définies au niveau 88.
7. À retenir
- La
WORKING-STORAGE SECTIONest la mémoire du programmeur COBOL. - Les niveaux
01servent à structurer les données complexes,77pour les simples. - Les niveaux
88permettent d’associer un nom à une valeur, ce qui rend le code plus lisible. - Les variables définies ici sont disponibles pendant tout le programme.