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.1
wird die gegebene Zeile direkt und absolut angesprochen.Ist
*=50.1
und%=1.0000
, so spricht man mit*+3.5-%
die Zeile52.6000
absolut an.Ist
%=1.0000
und#I15=6
, so wird mit%+#I15
die 6. logische Zeile hinter Zeilennummer1.0000
angesprochen (dies muss nicht unbedingt Zeile7.0000
sein).Ist
%=1.000
, so spricht man mit%+2L
die 2. logische Zeile hinter1.0000
an.Ist
%=1.0000
und*=3.0000
, so spricht man mit%+*
die Zeile4.0000
an.Ist
*=50.1
und#I5=1
, so spricht man mit*+3.5+#I5
die Zeile an, die der Zeile53.6000
logisch folgt (dies muss nicht unbedingt die Zeile53.7000
sein).Ist
*=50.1000
, so spricht man mit*+3.5+6L
die 6. logische Zeile hinter53.6000
an.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 einline
Operand angegeben, so besteht der Zeilenbereich nur aus dieser einen Zeile.
Der Operandrangesymb
stellt das Bereichssymbol dar, das über die @RANGE-Anweisung vereinbart werden kann und das mit dem Zeichen'&'
und dem Bereich0.0001-9999.9999
vorbelegt ist.
Da das Minuszeichen sowohl als Symbol zur Festlegung der Bereichsgrenzen wie auch innerhalb des Ausdrucksline
in 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 Ziffer0
geschrieben werden. Anders als beisvars
darf hier der Punkt nur in den angegebenen Fällen geschrieben werden.Beispiele
Mit
1-10
werden die Zeilen 1 bis 10 spezifiziert.Mit
%.-5
wird der Bereich von der 1. Zeile der Datei bis Zeile 5 ausgewählt.Mit
%+5L-.$-10L
wird 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-?.-.%+5L
wird der Bereich von*+2.1-?
bis zur 6. Zeile der Datei erfasst.Mit
#L1.-#L2
bezeichnet man den Bereich von#L1
bis#L2
.Mit
12.011
wird lediglich Zeile12.011
ausgewählt.Mit
#L9
wird lediglich die Zeile ausgewählt, deren Nummer in#L9
abgelegt ist.