Weiter Zurück Hinauf contents index
Weiter: COUNT   Zurück: CONCAT   Hinauf: Die Befehle im einzelnen



COPY   [num1 [num2] [wfname]]
CO
Der Befehl COPY kopiert einen oder mehrere Sätze hinter den Satz der aktuellen Zeile des workfiles. Die zu kopierenden Sätze werden durch ihre Nummer oder eine symbolische Nummer bezeichnet.

Die Satznummer kann ohne führende Nullen angegeben werden. Symbolische Satz- bzw. Zeilennummern sind:

Gibst du nur 1 Nummer an, so wird nur dieser Satz kopiert; gibst du 2 Nummern an, so werden alle Sätze von der ersten bis zur zweiten Nummer kopiert. Zu diesem Zweck muss natürlich num1 <= num2 gelten. Ist dies nicht der Fall, so erfolgt die Meldung Gibst du eine Nummer an, die es im workfile nicht gibt, so erfolgt die Meldung wobei für ... die Nummer eingesetzt wird.

Außerdem musst du darauf achten, dass der Kopierbereich nicht das Kopierziel enthält: Das Kopierziel ist sozusagen die Stelle zwischen aktuellem und dem darauffolgenden Satz. Der Kopierbereich darf also nicht die aktuelle Zeile und gleichzeitig die darauffolgende enthalten, wie es zum Beispiel bei COPY * num2 der Fall ist, wenn num2 hinter der aktuellen Zeile liegt. Bei Verstoß gegen diese Bedingung erhältst du die Meldung

Einige Beispiele:
co * verdoppelt die aktuelle Zeile.
co b kopiert die letzte Zeile.
co f l kopiert die gesamten Daten hinter die aktuelle Zeile (geht nur, wenn die aktuelle Zeile die letzte Zeile oder die top line ist).
co500* kopiert von Zeile 500 bis zur aktuellen Zeile.
co p * kopiert die Zeile vor der aktuellen und die aktuelle Zeile hinter die aktuelle, macht also aus den beiden Zeilen a b die 4 Zeilen a b a b, wenn b die aktuelle Zeile war.
Ohne Angabe eines 3. Parameters werden die zu kopierenden Sätze aus demselben workfile genommen, in den sie eingesetzt werden sollen. Du kannst aber auch als 3. Parameter einen workfile angeben, aus dem die Sätze zum Kopieren geholt werden sollen. Gibt es diesen nicht, so erhältst du die Meldung Beispielsweise kopiert die Sätze mit den Nummern 1000 bis 1500 aus dem workfile abc hinter die aktuelle Zeile des aktiven workfiles.

Ein weiteres Beispiel: Du möchtest den gesamten Inhalt des Hauptworkfiles (main) in einem neuen workfile namens abc haben. Dann geht das am einfachsten mit

Beachte bitte, dass COPY T B die top line mitkopiert, was meistens nicht erwünscht sein dürfte.

Bei der Angabe des workfile-Namens musst du den 2. Parameter (die 2. Nummer) angeben (auch wenn er mit dem 1. identisch ist), wenn der workfile-Name mit einer symbolischen Zeilennummer verwechselt werden könnte. Beispielsweise kopiert:

den Satz mit der Nummer 500 aus dem workfile a, während alle Sätze im aktiven workfile ab der Nummer 500 meint, so dass du bei Kopieren des Satzes 500 aus dem workfile b schreiben musst.

Die beim Kopieren eingesetzten Sätze erhalten Nummern, die sich an die vorhandenen Nummern der beiden Sätze, zwischen die eingesetzt wird, möglichst gut anpassen. Da das Verfahren, wie die neuen Nummern bestimmt werden, auch bei anderen Befehlen benutzt wird, ist es nur einmal beschrieben und zwar im Abschnitt Einfügen von Satznummern.


Weiter Zurück Hinauf contents index
Weiter: COUNT   Zurück: CONCAT   Hinauf: Die Befehle im einzelnen