Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

O - Kopieren oder Verschieben über einen Zeilenbereich

&pagelevel(3)&pagelevel

Die Kurzanweisung O kopiert oder verschiebt Datensätze, deren Arbeitsdatei- und Zeilennummern mit C, M oder R im Kopierpuffer aufgesammelt wurden, über (on) die angegebene Zeile und den nachfolgenden Zeilenbereich.

Kurzanweisung

Taste

O

[DUE] oder [F2]

Im Folgenden wird der Einfachheit halber immer von Kopieren gesprochen, auch wenn die Zeilen nach dem Kopieren gelöscht, d.h. verschoben werden.

Ist der Kopierpuffer leer, wird die Anweisung mit der Meldung EDT5376 abgewiesen.

Es sind zwei Fälle zu unterscheiden:

  1. Wenn der angegebene Satz ab Spalte 1 im Datenfenster angezeigt wird, wird der gesamte Inhalt des angegebenen Satzes mit dem zu kopierenden Satz überschrieben.

  2. Wenn der angegebene Satz ab einer Spalteposition größer als 1 im Datenfenster angezeigt wird, wird der Bereich ab der angezeigten Spaltenposition in der Länge des zu kopierenden Satzes mit dessen Inhalt überschrieben. Ist die Länge des zu kopierenden Satzes kleiner als die Länge des bei O angegebenen Satzes, bleiben die restlichen Teile des zu überschreibenden Satzes erhalten. Auf diese Weise können Sätze in andere Sätze eingefügt oder an andere Sätze angefügt werden.

Werden mehrere zu kopierende Zeilen übertragen, werden sie entsprechend ihrer Anzahl auf die dem angegebenen Satz folgenden Sätze übertragen. Wird dabei das Ende der Arbeitsdatei überschritten, werden ab dort neue Zeilen angelegt.

Beim Anfügen der kopierten Zeilen nach dem Ende der Arbeitsdatei vergibt der EDT die Zeilennummern nach dem Verfahren „Einfügen zwischen zwei Zeilen“ (siehe Abschnitt „Zeilennummernvergabe“). Ist ein Anfügen nicht möglich, unterbleibt der Vorgang, der Kopierpuffer wird nicht gelöscht und die Meldung EDT5365 wird ausgegeben. Bereits überschriebene Zeilen bleiben aber überschrieben.

Ist die aktuelle Arbeitsdatei leer und hat sie den Zeichensatz *NONE, dann erhält sie beim Kopieren den Zeichensatz der Quell-Arbeitsdatei der ersten zu kopierenden Zeile.

Hat die aktuelle Arbeitsdatei einen Zeichensatz, dann werden die zu kopierenden Zeilen in den Zeichensatz der aktuellen Arbeitsdatei konvertiert. Werden dabei Zeichen gefunden, die im Zeichensatz der Arbeitsdatei nicht darstellbar sind, werden diese durch ein Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe @PAR SUBSTITUTION-CHARACTER). Andernfalls wird die Kurzanweisung abgewiesen und die Fehlermeldung EDT5453 ausgegeben.

Hinweis

Die Kurzanweisung O wird erst ausgeführt, nachdem C-, M- und R-Anweisungen abgearbeitet wurden. Deshalb kann in einem Arbeitsfenster in einem Dialogschritt der Zielort auch vor den zu kopierenden Zeilen angegeben werden.

Wenn mit O über eine Zeile kopiert wird, die selbst im Bereich der zu kopierenden oder zu verschiebenden Zeilen liegt, kann es zu unerwarteten Effekten kommen, insbesondere beim Verschieben von Zeilen mit M. Siehe dazu die folgenden Beispiele.

Beispiel 1

Die Zeile 2.00 soll in die Zeile 3.00 kopiert werden. Dazu wird in Zeile 2.00 die Kurzanweisung C und in Zeile 3.00 die Kurzanweisung O eingegeben.

Die Zeile 3.00 wurde mit dem Inhalt der Zeile 2.00 überschrieben.

Beispiel 2

Die Zeilen 2.00 bis 5.00 werden zum Kopieren aufgesammelt.

Die Zeilen aus dem Kopierpuffer sollen über Zeile 4.00 und folgende kopiert werden.

Da durch das Kopieren der Inhalt der Zeilen aus dem Kopierpuffer selbst verändert wurde, kommt es zu dem obigen Ergebnis.

Beispiel 3

Die Zeile 2.00 wird zum Verschieben ausgewählt.

Sie soll Zeile 2.00 überschreiben.

Zeile 2.00 ist gelöscht worden, da beim Verschieben die zu verschiebende Zeile nach dem Übertragen gelöscht wird.

Beispiel 4

Die Zeilen 1.00 bis 3.00 werden zum Kopieren ausgewählt. Gleichzeitig wird das Datenfenster mit der Anweisung >8 um 8 Zeichen nach rechts verschoben.

Die Zeilen aus dem Kopierpuffer werden mit O über die nach rechts verschobene Zeile 1 und die Folgezeile kopiert. Gleichzeitig wird das Datenfenster mit der Anweisung << wieder auf den Datensatzanfang geschoben.

Als Ergebnis wurde jede Zeile an sich selbst angefügt.