Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

@SEPARATE - Zeile umbrechen

&pagelevel(3)&pagelevel

Mit der Anweisung @SEPARATE werden die angegebenen Zeilen in mehrere Zeilen umgebrochen. Die Umbruchstelle wird durch ein Satztrennzeichen oder durch eine Spaltenposition angegeben.

Operation

Operanden

F-Modus, L-Modus

@SEPARATE

[lines [,...] ] [AT {strchar | col} ]

lines

Einer oder mehrere Zeilenbereiche, deren Zeilen umgebrochen werden
sollen. Fehlt der Operand lines, so werden alle Zeilen der Datei bearbeitet.

AT

Der Operand leitet die Definition der Umbruchstelle ein.

Fehlt der Operand AT, so bestimmt das mit der Anweisung
@PAR SEPARATOR voreingestellte Satztrennzeichen den Umbruch (siehe
Anweisung @PAR SEPARATOR). Wenn kein Satztrennzeichen
voreingestellt ist, wird die Fehlermeldung EDT4952 ausgegeben.

strchar

Der Operand legt das Satztrennzeichen für den Umbruch fest. Er besteht
aus einem beliebigen Zeichen, das in Hochkommas anzugeben ist. Das
Zeichen kann auch in Form einer Ersatzdarstellung für Unicode-Zeichen
angegeben werden.

col

Der Operand gibt die Nummer der Spalte an, bei der umgebrochen werden
soll.

Wird der Umbruch mit Hilfe eines Satztrennzeichens durchgeführt und befinden sich in einer Zeile des angegebenen Zeilenbereichs keine Satztrennzeichen, so wird die Zeile nicht umgebrochen.

Befinden sich in einer Zeile des angegebenen Zeilenbereichs dagegen ein oder mehrere Satztrennzeichen, so wird die Zeile von links nach rechts nach dem ersten Auftreten des Satztrennzeichens durchsucht.

Alle Zeichen vor dem ersten Satztrennzeichen verbleiben in der ursprünglichen Zeile, während alle Zeichen nach dem Satztrennzeichen (auch noch weitere eventuell auftretende Satztrennzeichen) als neue Zeile in die Arbeitsdatei eingefügt werden.
Das Satztrennzeichen, bei dem umgebrochen wurde, wird entfernt, d.h., es kommt weder in der ursprünglichen Zeile noch in der neu eingefügten Zeile vor.

Enthält die neu eingefügte Zeile noch weitere Satztrennzeichen, so wird die soeben beschriebene Vorgehensweise auf diese Zeile erneut angewandt. Dies wird solange fortgesetzt, bis eine neu eingefügte Zeile kein Satztrennzeichen mehr enthält.

Treten in der Zeile mehrere Satztrennzeichen hintereinander auf bzw. beginnt oder endet die Zeile mit einem oder mehreren Satztrennzeichen, so werden Leersätze (Satzlänge=0) erzeugt.

Wird die Umbruchstelle durch eine Spaltennummer festgelegt, so werden alle Zeichen ab dieser Position (inklusive dem Zeichen in der angegebenen Spalte) von der ursprünglichen Zeile abgetrennt und als neue Zeile in die Arbeitsdatei eingefügt. Hat die neu eingefügte Zeile mindestens noch genau so viel oder mehr Spalten, als in der Anweisung durch den Operanden col angegeben, so wird auch diese Zeile an der Spalte col umgebrochen. Dieser Vorgang wird solange fortgesetzt, bis eine neu eingefügte Zeile weniger Spalten hat, als durch den Operanden col angegeben.

Hat die ursprüngliche Zeile bereits weniger Spalten als durch den Operand col angegeben oder wird in der Anweisung col=1 angegeben, wird die Zeile nicht verändert.

Die Nummerierung der beim Umbruch neu entstehenden Zeilen geschieht nach dem Verfahren „Einfügen zwischen zwei Zeilen“ (siehe Abschnitt „Zeilennummernvergabe“).

Wird die Anweisung mit [K2] unterbrochen und der EDT-Lauf mit /INFORM-PROGRAM fortgesetzt, so wird die Bearbeitung der Anweisung abgebrochen und die Meldung EDT5501 ausgegeben.

Beispiel 1

Eine Druckliste soll eine kleinere Breite erhalten:

@SEPARATE 5-100 AT 41

Die Zeilen 5 bis 100 werden auf eine Länge von 40 Zeichen gekürzt. Die Zeilenreste werden hinter jede Zeile in die Datei eingefügt.

Beispiel 2

In Datensätzen sind Zeilenvorschub-Zeichen (= U'000A' in UTF16) enthalten, die ausgewertet werden sollen (es wird für dieses Beispiel angenommen, dass als Fluchtsymbol für die Ersatzdarstellung von Unicode-Zeichen mit der Anweisung @PAR ESCAPE-CHARACTER das Zeichen % vereinbart wurde):

@SEPARATE & AT '%U000A'