🔤 Manipulation de chaînes en COBOL (niveaux 01 et 05)

COBOL permet de gérer des chaînes de caractères de manière structurée, grâce à un système de déclarations hiérarchiques. On peut utiliser les niveaux 01, 05, 10… pour découper des zones de texte en sous-parties manipulables individuellement.

📦 Exemple 1 – Déclaration d’une structure avec niveaux 01/05

Voici un exemple de chaîne structurée représentant un nom complet :

DATA DIVISION.
WORKING-STORAGE SECTION.
01 IDENTITE.
    05 NOM    PIC X(20) VALUE "DUPONT".
    05 PRENOM PIC X(20) VALUE "Jean".
  

Les variables NOM et PRENOM sont des champs indépendants mais regroupés dans l’objet IDENTITE. Cela permet de manipuler :

  • le bloc complet : IDENTITE
  • ou chaque sous-élément : NOM ou PRENOM

🧪 Exemple 2 – Affichage formaté

PROCEDURE DIVISION.
    DISPLAY "Nom : ", NOM.
    DISPLAY "Prénom : ", PRENOM.
    STOP RUN.
  

✅ Résultat : Nom : DUPONT Prénom : Jean

✂️ Exemple 3 – Décomposer une chaîne (sous-zones)

On peut aussi découper une chaîne en sous-parties selon la position :

01 TELEPHONE.
    05 INDICATIF  PIC X(3) VALUE "+33".
    05 NUMERO     PIC X(10) VALUE "1234567890".
  

Cela permet d'afficher séparément :

DISPLAY "Téléphone : ", INDICATIF, " ", NUMERO.
  

✅ Résultat : Téléphone : +33 1234567890

🪄 Exemple 4 – Chaîne complète manipulée comme une seule variable

Si on affiche IDENTITE dans l'exemple 1 :

DISPLAY IDENTITE.
  

✅ Résultat : DUPONTJean (concaténé tel quel dans une seule zone de 40 caractères).

🧠 À retenir

  • 🧩 Le niveau 01 définit un bloc de données
  • 🔹 Les niveaux 05, 10… définissent des sous-parties
  • 📏 On peut structurer, découper, concaténer ou afficher les champs séparément ou ensemble
  • 🧾 Très utile pour gérer des fiches client, des lignes d'adresse, des formats d’identifiants