COBOL - Datenlayout



COBOL-Layout ist die Beschreibung der Verwendung der einzelnen Felder und den in ihm vorhandenen Werte. Folgenden werden die Datenbeschreibung Einträge in COBOL verwendet:

  • Neu definiert Klausel
  • Benennt Klausel
  • Nutzung Klausel
  • Copybooks

Neu definiert Klausel

Neu definiert Klausel wird verwendet, um einen Lagerung mit unterschiedlichen Datenbeschreibung definieren. Wenn ein oder mehrere DatenArtikel werden nicht gleichzeitig benutzt, dann der gleiche Speicher konnen für einen anderen Datenpunkt verwendet werden. So kann derselbe Speicher kann mit verschiedenen DatenArtikel bezeichnet werden.

Syntax

Es folgt die Syntax für Redefine-Klausel:

01 WS-OLD PIC X(10).
01 WS-NEW1 REDEFINES WS-OLD PIC 9(8).
01 WS-NEW2 REDEFINES WS-OLD PIC A(10).

Im Folgenden sind die Details von Verwendeten Parameter:

  • WS-OLD wird neu definiert Artikel
  • WS-NEW1 und WS-NEW2 sind Redefining Artikel

Stufe Zahl der neu definiert Artikel und die Neudefinition Artikel muss gleich sein und es kann nicht 66 oder 88 Level-Nummer sein. Verwenden Sie keine VALUE-Klausel mit einer Neudefinition Artikel. Im Datei-Abschnitt, tut nicht verwendung einem neu definiert Klausel mit 01 Level-Nummer. Redefine-Definition muss der Nächste Datenbeschreibung Sie neu definieren wollen. Eine Neudefinition Artikel wird immer den gleichen Wert wie ein neu definiert Artikel.

Beispiel

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-DESCRIPTION.
   05 WS-DATE1 VALUE '20140831'.
   10 WS-YEAR PIC X(4).
   10 WS-MONTH PIC X(2).
   10 WS-DATE PIC X(2).
   05 WS-DATE2 REDEFINES WS-DATE1 PIC 9(8).

PROCEDURE DIVISION.
   DISPLAY "WS-DATE1 : "WS-DATE1.
   DISPLAY "WS-DATE2 : "WS-DATE2.

STOP RUN.

JCL oben COBOL-Programm zu ausführen:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Wenn Sie kompilieren und führen Sie das obige Programm, es produziert das folgende Ergebnis:

WS-DATE1 : 20140831
WS-DATE2 : 20140831

Benennt Klausel

Benennt Klausel wird verwendet, um andere Namen auf bestehende Datenelemente geben. Es wird verwendet, um neu zu gruppieren die Daten Namen und geben einen neuen Namen zu sie. Die neuen Daten-Namen können umbenennen in Gruppen oder elementarArtikel. Level-Nummer 66 ist für Umbenennungen vorbehalten..

Syntax

Es folgt die Syntax für Benennt Klausel:

01 WS-OLD.
10 WS-A PIC 9(12).
10 WS-B PIC X(20).
10 WS-C PIC A(25).
10 WS-D PIC X(12).
66 WS-NEW RENAMES WS-A THRU WS-C.

Umbenennung ist möglich bei gleiche Ebene nur. Im obigen Beispiel, WS-A, WS-B und WS-C sind bei der gleichen Ebene. Benennt Definition muss der Nächste Datenbeschreibung, die Sie umbenennen wollen. Verwenden Sie keine Benennt mit 01,77 oder 66 Level-Nummer. Die Daten Namen für Umbenennungen verwendet werden, müssen in der Reihenfolge kommen. DatenArtikel, mit Klausel auftreten, können nicht umbenannt werden.

Beispiel

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-DESCRIPTION.
   05 WS-NUM.
   10 WS-NUM1 PIC 9(2) VALUE 20.
   10 WS-NUM2 PIC 9(2) VALUE 56.
   05 WS-CHAR.
   10 WS-CHAR1 PIC X(2) VALUE 'AA'.
   10 WS-CHAR2 PIC X(2) VALUE 'BB'.
   66 WS-RENAME RENAMES WS-NUM2 THRU WS-CHAR2.

PROCEDURE DIVISION.
   DISPLAY "WS-RENAME : " WS-RENAME.
   
STOP RUN.

JCL oben COBOL-Programm zu ausführen:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Wenn Sie kompilieren und führen Sie das obige Programm, es produziert das folgende Ergebnis :

WS-RENAME : 56AABB

Usage Klausel

Usage-Klausel gibt das Betriebssystem, in dem das Format Daten ist gespeichert . Es kann nicht verwendet mit Level-Nummern 66 oder 88. wenn Nutzung Klausel ist angegeben auf eine Gruppe, dann werden alle elementar Artikel die gleiche Nutzung clause.The verschiedene Optionen zur Verfügung mit Usage-Klausel sind wie folgt:

Anzeige

DatenArtikel wird im ASCII-Format gespeichert und jedes Zeichen wird 1 Byte zu nehmen. Es ist Default Nutzung.

Das folgende Beispiel , um berechnet die Anzahl der Bytes erforderlich:

01 WS-NUM PIC S9(5)V9(3) USAGE IS DISPLAY.
It requires 8 bytes as sign and decimal doesn't require any byte.

01 WS-NUM PIC 9(5) USAGE IS DISPLAY.
It requires 5 bytes as sign.

COMPUTATIONAL / COMP

Datenelement ist im binären Format gespeichert. Hier Daten Einzelteile müssen Ganzzahl sein.

Das folgende Beispiel , um berechnet die Anzahl der Bytes erforderlich:

01 WS-NUM PIC S9(n) USAGE IS COMP.

If 'n' = 1 to 4, it takes 2 bytes.
If 'n' = 5 to 9, it takes 4 bytes.
If 'n' = 10 to 18, it takes 8 bytes.

COMP-1

Daten Artikel ist ähnlich wie Real oder Float und wird als einzige Präzision Gleitkomma-Zahl vertreten. intern Daten ist im Hexadezimal-Format gespeichert. COMP-1 akzeptiert keine PIC-Klausel. Here 1 Wort ist gleich zu 4 Bytes.

COMP-2

Daten Artikel ist ähnlich zu lang oder doppelt und wird repräsentiert als double precision floating point Zahl. Intern Daten werden im Hexadezimal-Format gespeichert. COMP-2 ist nicht festgelegt PIC-Klausel. Hier 2 Wort ist gleich zu 8 bytes

COMP-3

Daten Artikel ist Filialen in Packung Dezimalformat. Jede Ziffer einnimmt einem Halb byte (1 Nibble ) und das Zeichen ist an der am weitesten rechts Nibble gespeichert.

Das folgende Beispiel , um berechnet die Anzahl der Bytes erforderlich:

01 WS-NUM PIC 9(n) USAGE IS COMP.
Number of bytes = n/2 (If n is even)
Number of bytes = n/2 + 1(If n is odd, consider only integer part)

01 WS-NUM PIC 9(4) USAGE IS COMP-3 VALUE 21.
It requires 2 bytes of storage as each digit occupies half a byte.

01 WS-NUM PIC 9(5) USAGE IS COMP-3 VALUE 21.
It requires 3 bytes of storage as each digit occupies half a byte.

Copybooks

Ein COBOL-Copybook ist eine Auswahl der Code, Datenstrukturen definiert. Wenn eine bestimmte Datenstruktur ist in vielen Programmen dann anstelle des Schreibens die gleiche Datenstruktur wieder verwendet wird, können wir Hefte zu verwenden. Wir nutzen die COPY-Anweisung, um einen Copybook in ein Programm aufzunehmen. COPY-Anweisung in der WORKING-STORAGE SECTION verwendet.

das folgende Beispiel , um Heft innerhalb COBOL-Programm enthalten:

DATA DIVISION.
WORKING-STORAGE SECTION.
COPY ABC.

Hier ABC ist der Copybook Namen. Die folgenden Datenelemente in ABC Heft kann innerhalb eines Programms verwendet werden.

01 WS-DESCRIPTION.
   05 WS-NUM.
      10 WS-NUM1 PIC 9(2) VALUE 20.
      10 WS-NUM2 PIC 9(2) VALUE 56.
   05 WS-CHAR.
      10 WS-CHAR1 PIC X(2) VALUE 'AA'.
      10 WS-CHAR2 PIC X(2) VALUE 'BB'.
Advertisements