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.

...