Weiter Zurück Hinauf contents index
Weiter: CODEPAGE   Zurück: CMDSEP   Hinauf: Die Befehle im einzelnen



CMOVE   [(l1) [l2])] c1 [c2] COLUMN [+|-]col [LINE [+|-]num] [n]
CM
CMOVE steht für column move, verschiebt also Spalten einer Zeile und sollte nicht mit dem Befehl MOVE verwechselt werden, der Zeilen verschiebt. verschiebt im Satz der aktuellen Zeile die Spalte 5 in die Spalte 20 verschiebt die Spalten 5 bis 10 in die Spalten 20 bis 25. Beachte, dass beim Ziel nur die Anfangsspalte angegeben wird, weil die Anzahl ja bereits bei den Quellspalten festgelegt wurde.

Das Verschieben kannst du dir so vorstellen: Die Zeichen ab der Zielspalte werden um die Anzahl der zu verschiebenden Zeichen nach rechts verschoben. In die aufgegangene Lücke werden die zu verschiebenden Zeichen geschrieben, die am Originalplatz dann gelöscht werden. Die sich dadurch ergebende Lücke wird durch Linksverschiebung der Zeichen rechts von der Lücke wieder geschlossen. Im Beispiel cmove 5 10 col 20 befinden sich die zu verschiebenden Zeichen danach in Spalte 14 bis 19, weil sie "zwischen" die ursprünglichen Spalten 19 und 20 verschoben wurden. Das ist dasselbe Verfahren wie bei dem Befehl MOVE, der auch keine Zeilen überschreibt sondern dazwischen einfügt, und an der Verschiebungsquelle keine Lücke hinterlässt.

Quell- und Zielbereich dürfen sich nicht überlappen. Falls doch, so erhältst du die Meldung

Anstelle einer absoluten Zielspalte kannst du auch eine relative angeben, indem du die Spaltenangabe bei COLUMN mit einem Vorzeichen versiehst: ist dasselbe wie oben.

Bisher beschränkten sich alle Beispiele auf die aktuelle Zeile. Durch Angabe einer Anzahl als letzter Parameter kannst du wie üblich den Befehl in n aufeinanderfolgenden Zeilen ab der aktuellen ausführen lassen:

führt den Befehl in 7 Zeilen aus. Hat der workfile zu wenig Zeilen, so erfolgt die Meldung Mit der beschriebenen Methode beginnt die Ausführung immer in der aktuellen Zeile. Alternativ kannst du die gewünschten Zeilen auch in Klammern als ersten Parameter angeben: Dies führt CMOVE in den Zeilen 500 bis 1200 aus, unabhängig davon, wo die aktuelle Zeile ist. Die angegebenen Zeilennummern dürfen auch symbolische sein (t, f, p, *, n, l, b, s). Gibst du nur 1 Zeilennummer an, so wird die zweite gleich der ersten angenommen. Bitte achte auf die Klammern.

Nun zum letzten Parameter von CMOVE. Bisher waren die Zielspalten in der selben Zeile wie die Quellspalten. Du kannst aber auch die Zielspalten separat angeben:

Dies verschiebt die Spalte 5 bis 10 der aktuellen Zeile in die Spalten 20 bis 25 der Zeile 700.

Wie bei COLUMN kannst du auch bei LINE durch Voransetzens eines Vorzeichens eine relative Zielzeile angeben:

Gibt es die angegebene Zeile nicht, so erhältst du die Meldung Selbstverständlich kannst du auch noch die (beiden alternativen) Angaben über die Anzahl der betroffenen Zeilen hinzufügen: Bitte beachte, dass du keine Zielzeile angeben kannst, die es (noch) nicht gibt. Wenn du also etwas hinter die letzte workfile-Zeile verschieben willst, musst du die Zielzeile vorher (leer) erstellen.

Mit CMOVE lassen sich ganze Rechtecke des workfiles an eine andere Stelle verschieben.


Weiter Zurück Hinauf contents index
Weiter: CODEPAGE   Zurück: CMDSEP   Hinauf: Die Befehle im einzelnen