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 Wurden | ||||||||||||||
rel | Bestimmt die Vergleichsoperation für die Spaltennummern (siehe oben):
| ||||||||||||||
col | Spaltennummer, mit der die Nummer der Spalte verglichen wird, in der bei | ||||||||||||||
.FALSE. | Es wird verzweigt, wenn bei der letzten Ausführung von @ON in der | ||||||||||||||
.EMPTY. | Es wird verzweigt, wenn die aktuelle Arbeitsdatei leer ist. Eine Arbeitsdatei | ||||||||||||||
text | EDT-Anweisung oder Datenzeile. Falls die Bedingung erfüllt ist, wird die Der Operand Wird |
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ähler ! angesprochen. 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. |