Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.
L’instruction STRING permet d’assembler plusieurs morceaux de texte (littéraux, champs, résultats de fonctions)
dans une seule variable destination. C’est l’outil idéal pour créer une phrase, un libellé, une ligne d’édition, ou un enregistrement
“formaté”, tout en gardant le contrôle sur la taille, les espaces, et la position du résultat.
Un programme cobol manipule souvent des champs à longueur fixe, donc remplis d’espaces.
Avec STRING , vous contrôlez précisément ce qui est copié dans la destination.
La notion essentielle est le couple :
DELIMITED BY + une règle de fin.
INTO … et si la destination est trop courte, le résultat est tronqué.
DELIMITED BY SIZE
signifie : “prendre tout le morceau”.
Si vous utilisez un autre délimiteur (ex. espace), la copie s’arrête à ce délimiteur.
STRING avec
FUNCTION TRIM sur les champs.
DISPLAY suffit, mais
dès que vous devez réutiliser le texte, STRING devient plus pratique.
Cet exemple demande un prénom et une ville, puis construit une phrase complète dans une variable.
Il montre la bonne pratique : nettoyer les champs avec FUNCTION TRIM
avant de concaténer.
>>SOURCE FORMAT FREE
IDENTIFICATION DIVISION.
PROGRAM-ID. DEMO-STRING.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PRENOM PIC X(20) VALUE SPACES.
01 WS-VILLE PIC X(20) VALUE SPACES.
01 WS-PHRASE PIC X(80) VALUE SPACES.
PROCEDURE DIVISION.
DISPLAY "Prenom : " WITH NO ADVANCING
ACCEPT WS-PRENOM
DISPLAY "Ville : " WITH NO ADVANCING
ACCEPT WS-VILLE
STRING
"Bonjour " DELIMITED BY SIZE
FUNCTION TRIM(WS-PRENOM) DELIMITED BY SIZE
", vous etes a " DELIMITED BY SIZE
FUNCTION TRIM(WS-VILLE) DELIMITED BY SIZE
"." DELIMITED BY SIZE
INTO WS-PHRASE
END-STRING
DISPLAY "Phrase = [" WS-PHRASE "]"
STOP RUN.
WS-PRENOM et une ville dans WS-VILLE FUNCTION TRIM WS-PHRASE avec STRING WS-PHRASE est un champ fixe :
s’il reste des espaces en fin de zone, les crochets permettent de les “voir” indirectement.
01 WS-PHRASE PIC X(25) VALUE SPACES.
01 WS-MSG PIC X(80) VALUE SPACES.
01 WS-LOG PIC X(80) VALUE SPACES.
STRING , si la destination est trop courte, vous perdez la fin.
La règle simple : commencez large, puis réduisez quand vous maîtrisez.
WS-PHRASE ,
ou produisez une phrase plus compacte.
FUNCTION TRIM
sur les champs texte.
FUNCTION TRIM (champ) avant de construire la phrase,
et affichez un message de saisie obligatoire.
FUNCTION TRIM et comparez le rendu.