COMPARE [n1 WITH] n2 [LIST n3] [TRANS [ON] OFF] [,NF]
Die Daten aus dem Arbeitsbereich n1 werden mit dem Arbeitsbereich n2 zeilenweise verglichen. Das Ergebnis wird in den Arbeitsbereich n3 geschrieben. Wird n3 nicht angegeben, wird das Ergebnis in den Arbeitsbereich 9 geschrieben, der nach dem Vergleich automatisch angezeigt wird. Als Ergebnis werden die Zeilennummer und der Inhalt der abweichenden Zeilen angezeigt. Alle abweichenden Zeilen in den Arbeitsbereichen n1 und n2 werden mit der FIND-Markierung versehen, d.h. neben der farblichen Hervorhebung kann mit der Taste F3 bzw. mit der Schaltfläche auf den nächsten abweichenden Satz positioniert werden.
n1 Nummer des ersten Arbeitsbereichs, der verglichen werden soll. Ist keine Nummer angegeben, wird der aktuelle Arbeitsbereich verwendet.
n2 Nummer des zweiten zu vergleichenden Arbeitsbereichs.
n3 Nummer des Arbeitsbereichs, in dem das Ergebnis abgelegt wird. Bei fehlender Angabe wird Arbeitsbereich 9 verwendet.
Codierung der Arbeitsbereiche
TRANS [ON] Falls die zu vergleichenden Arbeitsbereiche unterschiedlich codiert sind (ANSI/ASCII/EBCDIC/UNICODE), werden die Daten des zweiten Arbeitsbereichs vor dem Vergleich in die Code-Variante des ersten Arbeitsbereichs übersetzt bzw. falls ein UNICODE-Arbeitsbereich beteiligt ist, werden beide Arbeitsbereiche in UNICODE vergleichen. Die Übersetzung erfolgt nur intern, die Daten beider Arbeitsbereiche bleiben unverändert.
Diese Einstellung ist Standard bei Textdateien.
TRANS OFF Falls die zu vergleichenden Arbeitsbereiche unterschiedlich codiert sind (ANSI/ASCII/EBCDIC/UNICODE), werden die Daten ohne Code-Angleichung verglichen. In den Ergebnis-Bereich werden die Daten ebenfalls in der Original-Codierung übertragen.
Diese Einstellung ist Standard bei Binärdateien.
Der Translate-Modus kann auch mit dem Kommando PAR TRANS=YES|NO eingestellt werden.
Der Ergebnis-Arbeitsbereich ist in UNICODE codiert, falls einer der zu vergleichenden Arbeitsbereiche ein UNICODE-Arbeitsbereich ist. Andernfalls ist der Ergebnis-Arbeitsbereich in ANSI codiert.
NF No Focus: Nach der Erstellung der Ergebnisdaten wird nicht der Arbeitsbereich 9 bzw. der angegebene Ergebnis-Arbeitsbereich angezeigt. Der Fokus bleibt unverändert. Diese Option ist insbesondere für Prozeduren gedacht.
Um in Prozeduren das Vergleichsergebnis abfragen zu können, wird zusätzlich der EDT-Fehlerschalter gesetzt, falls die Arbeitsbereiche nicht gleich sind (Abfragen von Fehlerschalter siehe IF ERRORS). Vor dem Vergleichen muss der EDT-Fehlerschalter mit RESET zurückgesetzt werden.
Beispiele:
comp 1
Aktuellen Arbeitsbereich mit Arbeitsbereich 1 vergleichen. Das Ergebnis wird im Arbeitsbereich 9 angezeigt.
comp 0w1
Arbeitsbereich 0 mit 1 vergleichen. Das Ergebnis wird im Arbeitsbereich 9 angezeigt.
comp 0w1l4 trans off
Vergleich des Arbeitsbereichs 0 mit 1. Das Ergebnis wird im Arbeitsbereich 4 angezeigt. Die Code-Angleichung wird ausgeschaltet.
@@reset
@@comp 1
@@if no errors goto gleich
@@write 'file1'
@@:gleich
In einer EDT-Prozedur aktuellen Arbeitsbereich mit Arbeitsbereich 1 vergleichen. Falls die Arbeitsbereiche gleich sind, verzweigt die Prozedur zur Sprungmarke gleich. Sind die Arbeitsbereiche ungleich, wird der aktuelle Arbeitsbereich in die Datei file1 geschrieben.