In diesem Abschnitt werden die verschiedenen Formate definiert, mit denen in EDT-Anweisungen Zeilen und Zeilenbereiche angesprochen werden können.
Operand | Definition |
lnum | n | fraction | n fraction |
Zeilennummer.
Die erlaubten Werte für lnum liegen zwischen 0.0001 und 9999.9999.
Operand | Definition |
inc | lnum |
Schrittweite für Zeilennummern.
Die erlaubten Werte für inc liegen zwischen 0.0001 und 9999.9999.
Operand | Definition |
lsym | lvar | * | % | $ | ? | loopsymb |
Symbolisch angegebene Zeilennummer, die entweder als Zeilennummervariable oder als eines der im Folgenden erklärten Symbole angegeben wird (siehe auch Abschnitt „Symbolische Zeilennummern“).
| Aktuelle Zeilennummer, also die Zeilennummer, die der EDT im L-Modus zuletzt als |
| Niedrigste Zeilennummer der Datei. Ist die Datei leer, hat Höchste Zeilennummer der Datei. Ist die Datei leer oder enthält sie nur eine einzige |
| Zeilennummer der 1. Trefferzeile einer vorausgegangenen @ON-Anweisung. Der Wert |
Die symbolischen Zeilennummern *,%,$ und ? beziehen sich immer auf die aktuelle Arbeitsdatei, auch wenn sie in einer Bereichsangabe für eine andere Arbeitsdatei oder für eine externe Datei verwendet werden. Ihre jeweiligen Werte werden auch durch die @STATUS-Anweisung ausgegeben.
Operand | Definition |
line | {lsym [op inc] | lnum} [op {ivar | nL | lsym}] |
Mit dem Operanden line können Zeilennummern direkt oder als Ausdruck, der ihre Position relativ zu anderen Zeilennummern beschreibt, angegeben werden.
Kommt in dem für line spezifizierten Ausdruck weder ivar noch nL vor, wird die Zeilennummer absolut berechnet, d.h. die Zeilennummer ergibt sich durch Addition oder Subtraktion der Werte von lsym bzw. lnum.
Wenn ivar oder nL spezifiziert sind, wird die Zeilennummer logisch bestimmt, d.h. es wird ausgehend von einem Absolutwert die durch ivar oder nL angegebene Anzahl von existierenden Zeilen übersprungen, unabhängig von der Schrittweite der Zeilennummerierung.
Im Ausdruck nL darf n nicht den Wert 0 annehmen. Jedoch ist es möglich, in einer Ganzzahlvariablen diesen Wert abzulegen. Eine logisch bestimmte Zeilennummer kann man nur dann zuweisen, wenn es eine solche Zeile auch gibt. Andernfalls wird eine Fehlermeldung ausgegeben.
Beispiele
Mit
17.1wird die gegebene Zeile direkt und absolut angesprochen.Ist
*=50.1und%=1.0000, so spricht man mit*+3.5-%die Zeile52.6000absolut an.Ist
%=1.0000und#I15=6, so wird mit%+#I15die 6. logische Zeile hinter Zeilennummer1.0000angesprochen (dies muss nicht unbedingt Zeile7.0000sein).Ist
%=1.000, so spricht man mit%+2Ldie 2. logische Zeile hinter1.0000an.Ist
%=1.0000und*=3.0000, so spricht man mit%+*die Zeile4.0000an.Ist
*=50.1und#I5=1, so spricht man mit*+3.5+#I5die Zeile an, die der Zeile53.6000logisch folgt (dies muss nicht unbedingt die Zeile53.7000sein).Ist
*=50.1000, so spricht man mit*+3.5+6Ldie 6. logische Zeile hinter53.6000an.Operand
Definition
lines
rangesymb | line[[.] - [.] line]
Ein zusammenhängender Zeilenbereich.
Die Angabe
line1-line2(z.B.1-10) bewirkt das gleiche wieline2-line1 (10-1). Wird nur einlineOperand angegeben, so besteht der Zeilenbereich nur aus dieser einen Zeile.
Der Operandrangesymbstellt das Bereichssymbol dar, das über die @RANGE-Anweisung vereinbart werden kann und das mit dem Zeichen'&'und dem Bereich0.0001-9999.9999vorbelegt ist.
Da das Minuszeichen sowohl als Symbol zur Festlegung der Bereichsgrenzen wie auch innerhalb des Ausdruckslinein seiner arithmetischen Bedeutung benutzt werden kann, können Mehrdeutigkeiten entstehen. Um dieses Problem zu vermeiden, gelten die folgenden Konventionen:Endet die erste Bereichsgrenze mit
lsym, so schreibt manlsym.-line.Beginnt die zweite Bereichsgrenze mit
lsym, schreibt manline-.lsym... bzw.line-.lsym op...
Mit der Angabe von
.(Punkt) wird zum Ausdruck gebracht, dass es sich um einen Bereich, nicht etwa um eine Differenz handelt. Statt des Punktes kann auch die Ziffer0geschrieben werden. Anders als beisvarsdarf hier der Punkt nur in den angegebenen Fällen geschrieben werden.Beispiele
Mit
1-10werden die Zeilen 1 bis 10 spezifiziert.Mit
%.-5wird der Bereich von der 1. Zeile der Datei bis Zeile 5 ausgewählt.Mit
%+5L-.$-10Lwird der Bereich von der 6. Zeile der Datei bis zur 10. Zeile vor Ende der Datei ausgewählt.Mit
%.-$wird die gesamte Datei spezifiziert.Mit
*+2.1-?.-.%+5Lwird der Bereich von*+2.1-?bis zur 6. Zeile der Datei erfasst.Mit
#L1.-#L2bezeichnet man den Bereich von#L1bis#L2.Mit
12.011wird lediglich Zeile12.011ausgewählt.Mit
#L9wird lediglich die Zeile ausgewählt, deren Nummer in#L9abgelegt ist.