Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

@SET (Format 6) - Verändern der aktuellen Schrittweite und Zeilennummer

&pagelevel(3)&pagelevel

Die Anweisung @SET definiert die aktuelle Zeilennummer und die aktuelle Schrittweite oder es werden frühere Werte für die Zeilennummer und die Schrittweite wieder hergestellt.

Operation

Operanden

F-Modus, L-Modus

@SET

[line [(inc)] [:text] ] ]

line

inc

Der Operand gibt die neue aktuelle Zeilennummer an.

Der Operand gibt die neue aktuelle Schrittweite an. Wird inc nicht
angegeben, wird die implizit durch line gegebene Schrittweite verwendet (siehe
Abschnitt „Implizite Schrittweitenvergabe“).

text

EDT-Anweisung oder eine Dateneingabe, die nach der Festlegung der
neuen aktuellen Zeile und Schrittweite ausgeführt bzw. in die neue aktuelle
Zeile eingefügt wird. Die Zeichenfolge wird so behandelt, als ob man sie im
L-Modus an der Eingabeaufforderung eingegeben hätte. Insbesondere die
Interpretation als Dateneingabe bzw. als Anweisung erfolgt nach den
gleichen Regeln (siehe dazu den Abschnitt „L-Modus“).

Der Operand text beginnt unmittelbar hinter dem Zeichen ':', d.h. evtl.
angegebene Leerzeichen gehören schon dazu und werden bei
Dateneingaben auch in die Zeile übernommen.

Wird text nicht angegeben (aber der Doppelpunkt), wird eine Leerzeile
(Zeile der Länge 0) eingefügt. Wird weder der Operand text noch der
Doppelpunkt angegeben, wird nur die neue aktuelle Zeile und Schrittweite
festgelegt.

Mit jeder Anweisung @SET line [(inc)] werden eine neue aktuelle Zeilennummer und eine neue aktuelle Schrittweite festgelegt. Die bisherigen aktuellen Werte für Zeilennummer und Schrittweite für die aktuelle Arbeitsdatei werden in einem Speicherbereich abgelegt, in dem maximal drei Wertepaare (Zeilennummer/Schrittweite) Platz haben.

Die früher in diesem Speicherbereich abgelegten Wertepaare rutschen dabei jeweils um einen Platz nach hinten. Ist der Speicherbereich voll, so geht das letzte (älteste) Wertepaar verloren.

Sind bei der Anweisung @SET keine Operanden angegeben, so wird das zuletzt im Speicherbereich abgelegte Wertepaar zur aktuellen Zeilennummer und zur aktuellen Schrittweite.
Die Verschiebung der Wertepaare im Speicherbereich hängt dabei davon ab, ob der Speicherbereich bereits ganz voll war oder nicht. War der Speicherbereich noch nicht ganz voll, so rücken alle Wertepaare um einen Platz nach vorn.
Der letzte Platz im Speicherbereich bleibt leer. Ist der Speicherbereich bei Eingabe der Anweisung @SET ohne Operanden bereits leer, so werden die bisherige aktuelle Zeilennummer und die bisherige aktuelle Schrittweite beibehalten und es wird die Meldung EDT4964 ausgegeben.

Ist der Speicherbereich bei Eingabe der Anweisung @SET ohne Operanden bereits voll, so wird wie bereits zuvor das zuletzt im Speicherbereich abgelegte Wertepaar zur aktuellen Zeilennummer und zur aktuellen Schrittweite.

Im Speicherbereich selbst findet im Gegensatz zu vorher eine Rotation statt, d.h., alle Wertepaare im Speicherbereich, außer dem ersten, rücken einen Platz nach vorn und das bisher erste Wertepaar im Speicherbereich (die neue aktuelle Zeilennummer und die neue aktuelle Schrittweite) werden im letzten Platz des Speicherbereichs abgelegt.

Beim vollständigen Löschen der Arbeitsdatei wird der Speicherbereich geleert.

Bei dieser Anweisung darf der Anweisungsname ganz entfallen. Anders als bei den anderen @SET-Formaten, muss dann aber im F-Modus das Anweisungssymbol angegeben werden.

Bei Verwendung des Operanden text im F-Modus ist besondere Vorsicht geboten. Für seine Verarbeitung wird temporär in den L-Modus umgeschaltet und anschließend wieder der F-Modus aktiviert.
Dies geschieht auch, wenn der Operand z.B. eine Anweisung zum Umschalten in den L-Modus enthält. Enthält der Operand Dateneingaben und kommen in diesen das Zeichen Semikolon oder unpaarige Anführungszeichen vor, führt das durch die Zerlegung der Anweisungszeile in Einzelanweisungen möglicherweise zu unerwarteten Effekten.