Le fondamental du COBOL redéfinit

Le fondamental du COBOL redéfinit

Dans cet article, nous essaierons de comprendre le redéfinir de COBOL. Ceci est utilisé pour expliquer le même stockage sur le terrain de plusieurs façons.

Cela signifie que la définition et la redéfinition du champ se réfèrent toutes deux aux mêmes octets de stockage. COBOL REDEFINES ne peut pas avoir de clause de valeur et il ne peut pas être utilisé au niveau 1 dans la section Fichier ou rapport.

La clause fondamentale de redéfinir

Vous écrivez un programme pour générer un rapport et vous savez que ce rapport a trois sections différentes. La première section est l'en-tête, la deuxième section est l'enregistrement de détail, et la troisième section est la bande-annonce. Il existe deux façons de définir la structure de votre programme. La première consiste à définir chaque section de votre section de division de fichiers ou peut être dans votre section de stockage de travail. Une autre option est que vous pouvez définir les 132 octets pour votre enregistrement d'en-tête. De même, vous pouvez redéfinir l'enregistrement des détails et l'enregistrement de la bande-annonce à nouveau.

En bref, vous pouvez utiliser la clause Redéfinir pour vous référer au même emplacement de mémoire. Si vous souhaitez écrire dans l'en-tête, déplacez les enregistrements vers les fichiers d'en-tête particuliers et vous pouvez rédiger ce rapport. Vous faites référence au même emplacement de mémoire aux mêmes octets de stockage qui sont de 132 octets.

Détails de la syntaxe:

  • La clause de redéfinir doit suivre immédiatement après le nom de données-2.
  • Le nom de données-1 ne peut pas avoir la clause de valeur.
  • Le niveau de niveau du nom de données-1 =-nom de données -2 ne doit pas être 66 ou 88.
  • La taille de data-name-1 ne doit pas dépasser la taille du nom de données-2. Cependant, il peut être inférieur au nom de données-2.
  • L'élément Data-Name-2 ne peut pas contenir de clause.
  • Le nom de données 01-49-1.
  • Redéfinit le nom de données-2.

Quelques exemples de COBOL redéfinir

Exemple 1:

Division d'identification.
Programme de programme. redéfinir.
Division des données.
Section de dossier.
Section de stockage de travail.
01 ws-redefines-ex.
05 WS-Todays-Date Pic 9 (08) Valeur "2020717".
05 WS-Curr-DTE redéfinit WS-Todays-Date.
10 cc Pic 9 (02).
10 Yy Pic 9 (02).
10 mm pic 9 (02).
10 dd pic 9 (02).
Division des procédures.
A000-section.
Afficher "WS-Todays-Date:" WS-Todays-Date.
Afficher "WS-Curr-DTE:" WS-Curr-DTE.
Stop run.

Sortir:

Papan @ Papan-VirtualBox: ~ / Desktop / PP / new $ cobc -xjf One.cbl
un.CBL: 11: Avertissement: une valeur numérique est attendue
WS-Todays-Date: 2020717
WS-Curr-DTE: 2020717
Papan @ Papan-VirtualBox: ~ / Desktop / PP / New $

Explication:

Dans cet exemple, nous redéfinissons la date d'aujourd'hui dans la date actuelle qui est en fait une variable de groupe du siècle, de l'année, du mois et du jour. En fait, nous avons divisé la date d'aujourd'hui en quatre domaines différents. Ainsi, la première ligne consiste à définir le numéro de niveau 05 qui est une variable appelée date d'aujourd'hui et la taille de la variable est de 9 sur 8. Maintenant, la date actuelle est la nouvelle variable qui est en fait la redéfinition de la date d'aujourd'hui et du groupe de quatre champs. La taille combinée de tous les champs est de 8 octets.

Exemple 2:

Division d'identification.
Programme de programme. EMPLOYÉ.
Division des données.
Section de dossier.
Section de stockage de travail.
01 EMP-REC.
05 Emp-REC-lY Pic X (30) Valeur "David Martinez Gomes".
05 emp-name-dtl redéfinit EMP-REC-ly.
10 Emp-Fname Pic X (15).
10 emp-lname pic x (15).
05 EMP-DPT-NAME REFIFINES EMP-REC-LY.
10 EMP-DPT PIC X (10).
10 EMP-ADD PIC X (15).
Division des procédures.
A000-section.
Afficher "emp-re-ly:" EMP-REC-ly.
Afficher "emp-name-dtl:" emp-name-dtl.
Afficher "Emp-Fname:" Emp-Fname.
Afficher "EMP-LNAME:" EMP-LNAME.
Afficher "EMP-DPT-NAME:" EMP-DPT-NAME.
Afficher "EMP-ADD:" EMP-ADD.
Stop run.

Sortir:

Papan @ Papan-VirtualBox: ~ / Desktop / pp / new $ cobc -xjf deux.cbl
EMP-REC-LY: David Martinez Gomes
EMP-NAME-DTL: David Martinez Gomes
Emp-Fname: David Martinez
EMP-LNAME: Gomes
EMP-DPT-name: David Martinez Gomes
EMP-ADD: Inez Gomes

Explication:

Dans cet exemple, nous avons redéfini la même variable plusieurs fois. Il existe deux champs: EMP-REC-lly qui est le disque de détail EMP et EMP-DPT-NME qui est le nom du département EMP. Ce sont deux variables qui ont en fait redéfini EMP-REC-LY qui est x (30). Si vous voyez le premier qui est EMP-Name-DTL, il s'agit de nouveau d'une variable de groupe des prénoms et des noms de famille avec la taille de 15 et 10, respectivement. De même, nous regardons simplement la deuxième redéfinition qui est EMP-DPT-NME qui est à nouveau une redéfinition de EMP-REC-lly. C'est un groupe de variables x (10) et x (15).

Exemple 3:

Division d'identification.
Programme de programme. Mois_table.
Division des données.
Section de dossier.
Section de stockage de travail.
01 mois-tbl.
05 Mnth-nme.
10 remplissage pic x (03) Valeur «Jan».
10 remplissage pic x (03) Valeur «février».
10 remplissage pic x (03) Valeur 'mar'.
05 Redéfinit Mnth-NME.
10 mois, le NME se produit 3 fois.
15 Mnth Pic x (03).
Division des procédures.
Afficher "Mois-TBL:" Mois-TBL.
Afficher "Month-NME:" Mnth-NME.
Stop run.

Sortir:

Papan @ Papan-VirtualBox: ~ / Desktop / pp / new $ cobc -xjf trois.cbl
Mois-TBL: Janfebmar
Mnth-nme: Janfebmar
Papan @ Papan-VirtualBox: ~ / Desktop / PP / New $

Explication:

Passons à cet exemple où nous avons utilisé la clause de redéfinir pour initialiser le nom du mois. Si vous imprimez la valeur du nom du mois, de la table ou du tableau, vous constaterez que la première occurrence va avoir «Jan», la deuxième occurrence a «février», et la troisième occurrence a «mar». Avec cette technique, vous pouvez réellement attribuer des valeurs initiales à votre tableau ou à votre table.

Conclusion

Dans cet article, nous avons appris la syntaxe générale de la déclaration «redéfinir» dans COBOL et le concept fondamental de cette déclaration où nous pouvons réellement utiliser cette déclaration particulière est expliquée. Nous espérons que vous comprenez l'application de cette déclaration.