Parcours Accueil Tour guidé Initiation 1 h Initiation 24 h Révisions Exercices

Ici, ZONE-TEXTE et ZONE-NUMERIQUE utilisent exactement la même zone mémoire. Si vous affectez une valeur à l’un, elle impacte l’autre immédiatement.

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

📂 5-6 – La clause  REDEFINES  : réutilisation de la mémoire pour des structures multiples

La clause  REDEFINES  permet à une même zone mémoire de représenter plusieurs formats de données différents. C’est une fonctionnalité puissante du  COBOL , particulièrement utile lorsqu’on doit :

🔄 Exemple simple de  REDEFINES 

 01 ZONE-TEXTE                   PIC X(10).
 01 ZONE-NUMERIQUE          REDEFINES ZONE-TEXTE PIC 9(10).
  

Ici,  ZONE-TEXTE  et  ZONE-NUMERIQUE  utilisent exactement la même zone mémoire. Si vous affectez une valeur à l’un, elle impacte l’autre immédiatement.

📁 Cas d’usage : structure de message selon le type

 01 ENREGISTREMENT.
    05 TYPE-ENREGISTREMENT     PIC X(1).
    05 DONNEES-TEXTES           PIC X(29).
    05 DONNEES-NUMERIQUES       REDEFINES DONNEES-TEXTES.
        10 CODE-CLIENT         PIC X(5).
        10 MONTANT               PIC 9(6)V99.
  

Si le champ  TYPE-ENREGISTREMENT  vaut "T", on interprétera  DONNEES-TEXTES . Si c’est "N", on traitera la même zone comme  DONNEES-NUMERIQUES  avec ses sous-champs.

🎯 Avantages de  REDEFINES 
⚠️ Précautions à prendre
🧠 Astuce

Vous pouvez utiliser  REDEFINES  pour découper un champ fixe :


 01 DATE-TEXTE              PIC X(8) VALUE "20250423".
 01 DETAIL-DATE           REDEFINES DATE-TEXTE.
    05 ANNEE                PIC X(4).
    05 MOIS                 PIC X(2).
    05 JOUR                 PIC X(2).
  

Grâce à  REDEFINES , vous pouvez accéder à  DATE-TEXTE  comme une chaîne complète, ou en extraire ses composantes.

📌 Résumé

La clause  REDEFINES  est un outil puissant du  COBOL , qui vous permet de :

Bien utilisée, elle apporte souplesse et clarté. Mal utilisée, elle peut provoquer des erreurs subtiles.

↑ Haut