Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Zeilen und Zeilenbereiche

&pagelevel(4)&pagelevel

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
Quittung auf die Datenstation geschrieben hat. Ist die Datei leer, hat * den Wert 1.

%

$

Niedrigste Zeilennummer der Datei. Ist die Datei leer, hat % den Wert 1.

Höchste Zeilennummer der Datei. Ist die Datei leer oder enthält sie nur eine einzige
Zeile, so ist $=%.

?

Zeilennummer der 1. Trefferzeile einer vorausgegangenen @ON-Anweisung. Der Wert
beim Start des EDT ist 0. Dieser wird lediglich durch eine erfolgreiche @ON-Anweisung
verändert. Die symbolische Zeilennummer ? hat also nach @ON den gleichen Wert,
wie #L00.

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 Zeile 52.6000 absolut an.

  • Ist %=1.0000 und #I15=6, so wird mit %+#I15 die 6. logische Zeile hinter Zeilennummer 1.0000 angesprochen (dies muss nicht unbedingt Zeile 7.0000 sein).

  • Ist %=1.000, so spricht man mit %+2L die 2. logische Zeile hinter 1.0000 an.

  • Ist %=1.0000 und *=3.0000, so spricht man mit %+* die Zeile 4.0000 an.

  • Ist *=50.1 und #I5=1, so spricht man mit *+3.5+#I5 die Zeile an, die der Zeile 53.6000 logisch folgt (dies muss nicht unbedingt die Zeile 53.7000 sein).

  • Ist *=50.1000, so spricht man mit *+3.5+6L die 6. logische Zeile hinter 53.6000 an.

    Operand

    Definition

    lines

    rangesymb | line[[.] - [.] line]

    Ein zusammenhängender Zeilenbereich.

    Die Angabe line1-line2 (z.B. 1-10) bewirkt das gleiche wie line2-line1 (10-1). Wird nur ein line Operand angegeben, so besteht der Zeilenbereich nur aus dieser einen Zeile.
    Der Operand rangesymb stellt das Bereichssymbol dar, das über die @RANGE-Anweisung vereinbart werden kann und das mit dem Zeichen '&' und dem Bereich 0.0001-9999.9999 vorbelegt ist.
    Da das Minuszeichen sowohl als Symbol zur Festlegung der Bereichsgrenzen wie auch innerhalb des Ausdrucks line 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 man lsym.-line.

    • Beginnt die zweite Bereichsgrenze mit lsym, schreibt man line-.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 Ziffer 0 geschrieben werden. Anders als bei svars 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 Zeile 12.011 ausgewählt.

    • Mit #L9 wird lediglich die Zeile ausgewählt, deren Nummer in #L9 abgelegt ist.