Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

@IF (Format 3) - Abfrage von @ON-Treffern bzw. des Arbeitsdatei-Status

&pagelevel(3)&pagelevel

Mit diesem Format der @IF-Anweisung kann in EDT-Prozeduren geprüft werden, ob der EDT bei der letzten Ausführung von @ON einen Treffer festgestellt hat bzw. ob die aktuelle Arbeitsdatei leer ist. Abhängig davon wird eine angegebene Zeichenfolge als Eingabe abgearbeitet oder nicht.

Operation

Operanden

L-Modus

@IF

{.TRUE. [rel col] | .FALSE. | .EMPTY. }:[text]

.TRUE.

Es wird verzweigt, wenn bei der letzten Ausführung von @ON in der
aktuellen Arbeitsdatei ein Treffer festgestellt wurde.

Wurden rel und col angegeben, wird die Bedingung in der Weise
verschärft, dass die Spaltennummer, in der der erste festgestellte Treffer
begann, mit der durch col angegebenen Spaltennummer gemäß rel
verglichen wird. Die Bedingung gilt nur dann als erfüllt, wenn dieser
Vergleich positiv ausfällt.

rel

Bestimmt die Vergleichsoperation für die Spaltennummern (siehe oben):

Symbol

Erläuterung

>      bzw.   GT

größer als

<      bzw.   LT

kleiner als

>=     bzw.   GE

größer oder gleich

<=     bzw.   LE

kleiner oder gleich

=      bzw.   EQ

gleich

<>     bzw.   NE

ungleich

col

Spaltennummer, mit der die Nummer der Spalte verglichen wird, in der bei
der letzten @ON-Anweisung in der aktuellen Arbeitsdatei der erste Treffer
begann.

.FALSE.

Es wird verzweigt, wenn bei der letzten Ausführung von @ON in der
aktuellen Arbeitsdatei kein Treffer festgestellt wurde.

.EMPTY.

Es wird verzweigt, wenn die aktuelle Arbeitsdatei leer ist. Eine Arbeitsdatei
ist leer, wenn sie keine Datensätze enthält.

text

EDT-Anweisung oder Datenzeile. Falls die Bedingung erfüllt ist, wird die
Zeichenfolge 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.

Aus Kompatibilitätsgründen wird die früher mögliche Angabe von GOTO oder RETURN ohne Doppelpunkt weiter unterstützt.

Hinweis

Die Verwendung von @IF mit @RETURN als Anweisung außerhalb von Prozeduren führt möglicherweise zur Beendigung des EDT (siehe @RETURN-Anweisung).

Beispiel 1

5.     @PRINT
1.0000 WER
2.0000 WILL
3.0000 HIER
4.0000 MITMACHEN
5.     @PROC 8
1.     @ @ON ! FIND 'I'
2.     @ @IF .FALSE. : @GOTO 4 --------------------------------------- (1)
3.     @ @CREATE !: '*'*20
4.     @ @CONTINUE
5.     @END
5.     @DO 8,!=%,$ --------------------------------------------------- (2)
5.     @PRINT
1.0000 WER
2.0000 ********************
3.0000 ********************
4.0000 ********************
5.
(1)In der Arbeitsdatei 8 werden die Zeilennummern über den Schleifenzählerangesprochen. Sollte in einer der damit angesprochenen Zeilen der Buchstabe I nicht enthalten sein, bleibt diese Zeile unverändert. Im anderen Fall soll der Zeileninhalt durch 20 Sternchen ersetzt werden.
(2)Die Arbeitsdatei 8 wird ausgeführt. Dabei sollen alle Zeilen der Hauptdatei nacheinander durch den Schleifenzähler ! angesprochen werden.


Beispiel 2

5.     @PRINT
1.0000 WER
2.0000 WILL
3.0000 HIER
4.0000 MITMACHEN?
5.     @PROC 9
1.     @ @ON ! FIND 'ER'
2.     @ @IF .TRUE. = 3 : @GOTO 4
3.     @ @GOTO 5 ----------------------------------------------------- (1)
4.     @ @SUFFIX ! WITH ' DENN UNBEDINGT'
5.     @ @CONTINUE
6.     @END
5.     @DO 9,!=%,$ --------------------------------------------------- (2)
5.     @PRINT
1.0000 WER
2.0000 WILL
3.0000 HIER DENN UNBEDINGT
4.0000 MITMACHEN?
5.
(1)In der Prozedur in Arbeitsdatei 9 werden die Zeilennummern über den Schleifenzähler ! angesprochen. Sollte in einer der damit angesprochenen Zeilen in den Spalten 3 bis 4 die Zeichenfolge ER stehen, ist ihr die Zeichenfolge DENN UNBEDINGT anzuhängen. Im anderen Fall bleibt die Zeile unverändert.
(2)Die Prozedur von Arbeitsdatei 9 wird ausgeführt. Dabei werden alle Zeilen der Hauptdatei nacheinander durch den Schleifenzähler ! angesprochen.