Die MOVE CORRESPONDING-Anweisung


Mit der MOVE CORRESPONDING-Anweisung besitzt der Programmierer einen Befehl, mit dem er korrespondierende Datenfelder einer Datengruppe in eine andere Datengruppe 'schieben' kann. Hierbei ist die Reihenfolge der Datenfelder innerhalb der einzelnen Datengruppen völlig belanglos. Wichtig ist jedoch, das die Datenfelder tatsächlich korrespondierend sind. Das heißt, sie müssen den gleichen Bezeichner innerhalb der Datengruppe tragen, sie müssen vom gleichen Typ (numerisch oder alphabethisch) sein und die gleiche Größe besitzen.

Beispiel:

Datenfeld

Inhalt

01 Name-Satz.

.....05 Nummer PIC 9(5).

47119

.....05 Person.

..........10 Name PIC X(30).

Kasulske

..........10 Vorname PIC X(30).

Edwin

..........10 Strasse PIC X(30).

Cobolstr. 23

..........10 PLZ-Ort PIC X(30).

22056 Pilzdorf

.....05 Postfach PIC X(15).

FD 54-97 FRD

.....05 FILLER PIC X(20).

.

.....05 Bemerk PIC X(60).

schwierig

MOVE CORRESPONDING Name-Satz TO Druck-Satz

Datenfeld

Inhalt vorher

Inhalt nachher

01 Druck-Satz.

.....05 Strasse PIC X(30).

.

Cobolstr. 23

.....05 Nummer PIC 9(5).

.

47119

.....05 Intern-Nr PIC 9(10).

30097716530

30097716530

.....05 Vorname PIC X(30)B.

.

Edwin

.....05 Name PIC X(30).

.

Kasulske

.....05 FILLER PIC X(10).

.

.

.....05 PLZ-Ort PIC X(30).

.

22056 Pilzdorf

.....05 Postfach PIC X(15).

.

FD 54-97 FRD

.....05 Bemerkung PIC X(60).

Superangebot

Superangebot

.....05 FILLER PIC X(60).

.

.

Würde man versuchen, den selben Effekt mit Hilfe der MOVE-Anweisung ohne CORRESPONDING zu erziehlen, so müßten die folgenden sechs Anweisungen codiert werden:

MOVE Nummer IN Name-Satz TO Nummer IN Druck-Satz
MOVE Name IN Name-Satz TO Name IN Druck-Satz
MOVE Vorname IN Name-Satz TO Vorname IN Druck-Satz
MOVE Strasse IN Name-Satz TO Strasse IN Druck-Satz
MOVE PLZ-Ort IN Name-Satz TO PLZ-Ort IN Druck-Satz
MOVE Postfach IN Name-Satz TO Postfach IN Druck-Satz

FILLER werden nicht übertragen.

...

... zurück