Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.
La clause REDEFINES permet à une variable COBOL de partager la même zone mémoire qu'une autre. Cela permet d’interpréter une même donnée de différentes façons sans consommer plus d’espace. C’est une fonctionnalité puissante, à utiliser avec rigueur.
01 ZONE-MEMOIRE PIC X(10).
01 TEXTE-ET-CODE REDEFINES ZONE-MEMOIRE.
05 MESSAGE PIC X(7).
05 CODE PIC X(3).
Ici, TEXTE-ET-CODE redéfinit la même zone mémoire que ZONE-MEMOIRE.
On peut y accéder soit globalement via ZONE-MEMOIRE, soit en détail avec MESSAGE et CODE.
REDEFINES doit avoir le même niveau hiérarchique (souvent 01) que la variable d’origineREDEFINES avec VALUE directement01 BLOC-DATA PIC X(20).
01 BLOC-DECODE REDEFINES BLOC-DATA.
05 ID PIC X(5).
05 NOM PIC X(10).
05 ETAT PIC X(5).
Cette méthode est particulièrement utile lors du traitement de fichiers ou de buffers contenant des enregistrements mixtes.
REDEFINES uniquement si cela simplifie réellement la logique
REDEFINES est un outil puissant pour économiser de la mémoire et adapter vos programmes à des formats complexes.
Une bonne compréhension de son fonctionnement permet d'écrire du code plus modulaire et plus flexible dans les traitements professionnels.