1. Man kann die Anweisung verwenden, um ein einzelnes Datenfeld zu initialisieren:
Datenfeld |
Inhalt vorher |
Inhalt nachher |
01 Nummer PIC 9(5). |
47112 |
00000 |
Hier hätte man genauso gut mit der MOVE-Anweisung arbeiten können:
MOVE ZERO TO Nummer
...
2. Man kann mit der INITIALIZE-Anweisung auch eine ganze Datenguppe initialisieren (das ist der eigentliche Sinn dieser Anweisung):
Datenfeld |
Inhalt vorher |
Inhalt nachher |
01 Name-Satz. |
||
..... 05 Nummer PIC *.*9(5). |
*.*47112 |
*.*00000 |
..... 05 Person. |
||
.......... 10 Name PIC X(30). |
Kasulske |
Spaces |
.......... 10 Vorname PIC X(30). |
Edwin |
Spaces |
.......... 10 Strasse PIC X(30). |
Cobolstr. 23 |
Spaces |
.......... 10 PLZ-Ort PIC X(30). |
22056 Pilzdorf |
Spaces |
..... 05 Postfach PIC X(15). |
FD 54-97 FRD |
Spaces |
..... 05 Filler PIC X(30) VALUE ALL "!#!". |
!#! 10 mal |
!#! 10 mal |
..... 05 Umsatz PIC 9999999V99. |
000058263 |
000000000 |
Der Vorteil hier, gegenüber der MOVE-Anweisung, liegt hier darin, daß die Datenfelder innerhalb der Datengruppe gemäß ihrer Definition initialisiert werden, ohne daß man sich im Einzelnen darum kümmern müßte.
Datenfeld |
Inhalt vorher |
Inhalt nachher |
01 Name-Satz. |
||
..... 05 Nummer PIC 9(5). |
47112 |
00000 |
..... 05 Person. |
||
.......... 10 Name PIC X(30). |
Kasulske |
Kasulske |
.......... 10 Vorname PIC X(30). |
Edwin |
Edwin |
.......... 10 Strasse PIC X(30). |
Cobolstr. 23 |
Cobolstr. 23 |
.......... 10 PLZ-Ort PIC X(30). |
22056 Pilzdorf |
22056 Pilzdorf |
..... 05 Postfach PIC X(15). |
FD 54-97 FRD |
FD 54-97 FRD |
..... 05 Filler PIC X(30) VALUE ALL "!#!". |
!#! 10 mal |
!#! 10 mal |
..... 05 Umsatz PIC 9999999V99. |
000058263 |
000000000 |
Hier werden nur die Datenfelder, die numerischen Ursprungs sind, mit Nullen initialisiert. Die übrigen Felder bleiben unberücksichtigt. Natürlich ist dies auch für alphanumerische Datenfelder möglich:
Datenfeld |
Inhalt vorher |
Inhalt nachher |
01 Name-Satz. |
||
..... 05 Nummer PIC 9(5). |
47112 |
47112 |
..... 05 Person. |
||
.......... 10 Name PIC X(30). |
Kasulske |
* 30 mal |
.......... 10 Vorname PIC X(30). |
Edwin |
* 30 mal |
.......... 10 Strasse PIC X(30). |
Cobolstr. 23 |
* 30 mal |
.......... 10 PLZ-Ort PIC X(30). |
22056 Pilzdorf |
* 30 mal |
..... 05 Postfach PIC X(15). |
FD 54-97 FRD |
* 30 mal |
..... 05 Filler PIC X(30) VALUE ALL "!#!". |
!#! 10 mal |
!#! 10 mal |
..... 05 Umsatz PIC 9999999V99. |
000058263 |
000058263 |
INITIALIZE Bezeichner REPLACING ALPHABETIC DATA BY Bezeichner oder Literal
INITIALIZE Bezeichner REPLACING ALPHANUMERIC-EDITED DATA BY Bezeichner oder Literal
INITIALIZE Bezeichner REPLACING NUMERIC-EDITED DATA BY Bezeichner oder Literal
01 Tabelle. |
||||
..... 05 Element OCCURS 12. |
||||
.......... 10 Monat PIC X(9). |
||||
.......... 10 Umsatz PIC 9(8)V99. |
INIZIALIZE Element (5). INITIALIZE Monat (3) BY "Re-Monat". INITIALIZE Monat (8) BY "Abschluss". |
Vorher |
Nachher |
|||||
St.: |
Monat |
Umsatz |
Monat |
Umsatz |
||
(1) |
Mai |
036456289 |
Mai |
036456289 |
||
(2) |
Juni |
048683617 |
Juni |
048683617 |
||
(3) |
Juli |
033376916 |
Re-Monat |
033376916 |
||
(4) |
August |
040598021 |
August |
040598021 |
||
(5) |
September |
041749822 |
Spaces |
000000000 |
||
(6) |
Oktober |
050739872 |
Oktober |
050739872 |
||
(7) |
November |
039289777 |
November |
039289777 |
||
(8) |
Dezember |
035882915 |
Abschluss |
035882915 |
||
(9) |
Januar |
029478653 |
Januar |
029478653 |
||
(10) |
Februar |
037298746 |
Februar |
037298746 |
||
(11) |
März |
035819942 |
März |
035819942 |
||
(12) |
April |
040389227 |
April |
040389227 |
Vorher |
Nachher |
||||
St.: |
Monat |
Umsatz |
Monat |
Umsatz |
|
(1) |
Mai |
036456289 |
Mai |
000000000 |
|
(2) |
Juni |
048683617 |
Juni |
000000000 |
|
(3) |
Juli |
033376916 |
Juli |
000000000 |
|
(4) |
August |
040598021 |
August |
000000000 |
|
(5) |
September |
041749822 |
September |
000000000 |
|
(6) |
Oktober |
050739872 |
Oktober |
000000000 |
|
(7) |
November |
039289777 |
November |
000000000 |
|
(8) |
Dezember |
035882915 |
Dezember |
000000000 |
|
(9) |
Januar |
029478653 |
Januar |
000000000 |
|
(10) |
Februar |
037298746 |
Februar |
000000000 |
|
(11) |
März |
035819942 |
März |
000000000 |
|
(12) |
April |
040389227 |
April |
000000000 |
...