Die REDEFINES-Klausel

Die REDEFINES-Klausel wird verwendet, um bereits definierte Felder erneut zu definieren. Bei jeder neuen Definition wird wieder der Speicherbereich der Datenstruktur verwendet, der die Redefinierung zugrunde liegt. Auf diese Weise zeigt Cobol wieder Möglichkeiten auf, um Speicherplatz zu sparen ( ja, ja damals ...). Aber auch ohne diesen Effekt lohnt der Einsatz der Klausel, da man mit ihrer Hilfe auch die Eigenschaften der Datenstruktur neu festlegen kann. So kann die Datenklasse neben dem Namen neu definiert werden.
- Redefinitionen dürfen nur auf den Stufennummern 01-49 vorgenommen werden.
- Alle Redefinitionen müssen sich stets auf den gleichen Namen beziehen.
- Innerhalb einer Redefinition darf die VALUE-Klausel nicht verwendet werden.
- Die Datenstruktur auf die sich die Redefinition bezieht und die Redefinition müssen sich auf der gleichen Stufennummer befinden.
- Eine Redefinition muß unmittelbar auf die Definition der entsprechenden Datenstruktur folgen
- Auf der 01er-Stufe ist eine Redefinition innerhalb der FILE SECTION nicht zulässig.

...


Beispiel:
	01 Druckzeile.
	    05 FILLER PIC X(80).
	01 ErsteZeile REDEFINES Druckzeile.
	    05 Zeichen PIC X(35).
	    05 Bezeichnung PIC X(10).
	    05 Zeichen2 PIC X(35).
	01 Datenzeile REDEFINES Druckzeile.
	    05 Name PIC X(15).
	    05 Num PIC 9(6).
	    05 Platz PIC BBXBB.
	    05 Intern PIC 9(4).
	    05 Platz2 PIC BBAAABB.
	    05 Abteilung PIC X(43)
	
			:
			:
	
	MOVE ALL "#" TO Druckzeile.
			:
	WRITE Druck FROM Druckzeile AFTER 1.
	
			:
			:
	
	MOVE ALL "$" TO Zeichen.
	MOVE "Mahnliste1" TO Bezeichnung.
	MOVE ALL "+-" TO Zeichen2.
			:
	WRITE Druck FROM ErsteZeile AFTER 1.
	
			:
			:
	
	MOVE "Schmitz" TO Name.
	MOVE PersID TO Num.
	MOVE AbtNum TO Intern.
	MOVE "BuR" TO Platz2.
	MOVE "Buchhaltung-Revisionskontrolle" TO Abteilung.
			:
	WRITE Druck FROM Datenzeile AFTER 2.
	
			:
			:
	


Es würde sich folgender Ausdruck ergeben:

			
################################################################################

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Mahnliste1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Schmitz________000815_____4711__BuR__Buchhaltung-Revisionskontrolle_____________
		
Unterstrich _ steht für Leerstellen

...