Die Grundlage des Cobol definieren neu

Die Grundlage des Cobol definieren neu

In diesem Artikel werden wir versuchen, die Cobol neu zu verstehen. Dies wird verwendet, um den gleichen Feldspeicher auf viele Arten zu erklären.

Dies bedeutet, dass sich die Definition und die Neudefinition des Feldes beide auf dieselben Speicherbytes beziehen. COBOL -Neudefinieren können keine Wertschicht haben und kann in der Datei- oder Berichtsabschnitt nicht auf Stufe 1 verwendet werden.

Die Grundlage der neu definierten Klausel

Sie schreiben ein Programm, um einen Bericht zu generieren, und Sie wissen, dass der Bericht drei verschiedene Abschnitte hat. Der erste Abschnitt ist der Header, der zweite Abschnitt ist der Detaildatensatz und der dritte Abschnitt ist der Anhänger. Es gibt zwei Möglichkeiten, wie Sie die Struktur in Ihrem Programm definieren können. Der erste besteht darin, jeden Abschnitt in Ihrem Abschnitt "Dateiabteilung" zu definieren oder sich in Ihrem Abschnitt "Arbeiterlagerungen" befindet. Eine weitere Option ist, dass Sie die 132 Bytes für Ihren Header -Datensatz definieren können. In ähnlicher Weise können Sie den Detail -Datensatz und den Trailer -Datensatz erneut definieren.

Kurz gesagt, Sie können die neu definierte Klausel verwenden, um auf denselben Speicherort zu verweisen. Wenn Sie in den Header schreiben möchten, verschieben Sie die Datensätze in die bestimmten Header -Dateien und Sie können diesen Bericht schreiben. Sie beziehen sich auf denselben Speicherort zu denselben Speicherbytes, die 132 Bytes sind.

Syntaxdetails:

  • Die neu definierte Klausel muss unmittelbar nach dem Datennamen-2 folgen.
  • Der Datenname-1 kann die Wertklausel nicht haben.
  • Die Nummer der Datennamen-1 = Datenname -2 darf nicht 66 oder 88 betragen.
  • Die Datenname-1-Größe sollte die Datenname-2-Größe nicht überschreiten. Es kann jedoch geringer sein als der Datenname-2.
  • Das Datenname-2-Element kann keine vorkommende Klausel enthalten.
  • Die 01-49 Datenname-1.
  • Definiert die Datenname-2 neu.

Einige Beispiele für COBOL definieren neu

Beispiel 1:

Identifikationsabteilung.
Programm-ID. neu definieren.
Datenabteilung.
Dateiabschnitt.
Abschnitt Working-Storage.
01 WS-redefines-ex.
05 WS-Todays-Datum Bild 9 (08) Wert "2020717".
05 WS-CURR-DTE definiert WS-Todays-Datum neu.
10 CC Bild 9 (02).
10 YJ Bild 9 (02).
10 mm Bild 9 (02).
10 dd Bild 9 (02).
Verfahrensabteilung.
A000-Main-Abschnitt.
Anzeige "WS-Todays-Datum:" WS-Todays-Datate.
Anzeige "WS-CURR-DTE:" WS-CURR-DTE.
Stop Run.

Ausgang:

papan@papan -virtualbox: ~/desktop/pp/neu $ cobc -xjf one.CBL
eins.CBL: 11: Warnung: Der numerische Wert wird erwartet
WS-Todays-Datate: 2020717
WS-CURR-DTE: 2020717
Papan@Papan-virtualBox: ~/Desktop/pp/neu $

Erläuterung:

In diesem Beispiel definieren wir das heutige Datum in dem aktuellen Datum, der tatsächlich eine Gruppenvariable von Jahrhundert, Jahr, Monat und Tag ist. Eigentlich haben wir das heutige Datum in vier verschiedene Felder aufgeteilt. Die erste Zeile besteht also darin, die Niveau -Nummer 05 zu definieren, eine Variable, die als heutiges Datum bezeichnet wird und die Größe der Variablen 9 von 8 ist. Das aktuelle Datum ist nun die neue Variable, die tatsächlich die Neudefinition des heutigen Datums und der Gruppe von vier Feldern ist. Die kombinierte Größe aller Felder beträgt 8 Bytes.

Beispiel 2:

Identifikationsabteilung.
Programm-ID. MITARBEITER.
Datenabteilung.
Dateiabschnitt.
Abschnitt Working-Storage.
01 EMP-Rec.
05 EMP-Rec-Ly Bild X (30) Wert "David Martinez Gomes".
05 EMP-Name-DTL definiert EMP-Rec-Ly neu.
10 EMP-Fname Bild X (15).
10 emp-lname pic x (15).
05 EMP-DPT-Name definiert EMP-Rec-Ly neu.
10 EMP-DPT PIC X (10).
10 EMP-ADD PIC X (15).
Verfahrensabteilung.
A000-Main-Abschnitt.
Anzeige "EMP-rec-ly:" EMP-rec-ly.
Anzeige "EMP-NAME-DTL:" EMP-NAME-DTL.
Anzeige "Emp-Fname:" EMP-Fname.
Anzeige "emp-lname:" emp-lname.
Zeigen Sie "emp-dpt-name:" emp-dpt-name anzeigen.
Anzeige "EMP-ADD:" EMP-ADD.
Stop Run.

Ausgang:

papan@papan -virtualBox: ~/Desktop/pp/neu $ cobc -xjf zwei.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

Erläuterung:

In diesem Beispiel haben wir dieselbe Variable mehrmals neu definiert. Es gibt zwei Felder: EMP-Rec-Ly, das ist das EMP-Detail-Datensatz und EMP-DPT-NME, was der Name der EMP-Abteilung ist. Dies sind zwei Variablen, die EMP-Rec-Ly tatsächlich neu definiert haben, das ist x (30). Wenn Sie den ersten sehen, der EMP-NAME-DTL ist, ist es erneut eine Gruppenvariable des ersten und Nachnamens mit der Größe von 15 bzw. 10. In ähnlicher Weise schauen wir uns nur die zweite Neudefinition an, die EMP-DPT-NME ist, was wiederum eine Neudefinition von EMP-Rec-Ly ist. Es ist eine Gruppe von Variablen x (10) und x (15).

Beispiel 3:

Identifikationsabteilung.
Programm-ID. Monate_Table.
Datenabteilung.
Dateiabschnitt.
Abschnitt Working-Storage.
01 Monats-TBL.
05 Mnth-Nme.
10 Füllstoff Bild x (03) Wert 'Jan' '.
10 Füllstoff Bild x (03) Wert 'Februar'.
10 Füllstoff Bild x (03) Wert 'mar' '.
05 Füllstoff definiert MNTH-NME neu.
10 Monat-NME tritt dreimal auf.
15 mnth Bild x (03).
Verfahrensabteilung.
Anzeige "Monat-TBL:" Monat-TBL.
Anzeige "Monat-Nme:" Mnth-Nme.
Stop Run.

Ausgang:

papan@papan -virtualBox: ~/Desktop/pp/neu $ cobc -xjf drei.CBL
Monat-TBL: Janfebmar
MNTH-NME: Janfebmar
Papan@Papan-virtualBox: ~/Desktop/pp/neu $

Erläuterung:

Gehen wir mit diesem Beispiel über. Wenn Sie den Wert des Monatsnamens, der Tabelle oder des Arrays drucken, werden Sie feststellen, dass das erste Ereignis „Jan“ hat, das zweite Ereignis „Februar“ und das dritte Ereignis „mar“ hat "mar". Mit dieser Technik können Sie Ihrem Array oder Tabellen tatsächlich Anfangswerte zuweisen.

Abschluss

In diesem Artikel haben wir die allgemeine Syntax der „neu definierten“ Aussage in COBOL kennengelernt und das grundlegende Konzept dieser Aussage, in der wir diese bestimmte Aussage tatsächlich verwenden können. Wir hoffen, dass Sie die Anwendung dieser Erklärung verstehen.