IF/IFNOT

Beschreibung

IF überprüft eine Bedingung. IFNOT ist die Kurzschreibweise für IF *SCREEN NE.

Wenn die Bedingung wahr ist, wird die Anweisung ausgeführt. Wenn die Bedingung falsch ist, wird die nächste Anweisung ausgeführt.

Text in einfachen oder doppelten Anführungszeichen wird auf Groß- und Kleinschreibung überprüft.

Syntax

IF [variable] [operator] variable befehl
IFNOT variable befehl

Für variable können Sie alle Variablen von Entire Connection benutzen (z.B. #PARM1 oder #CNT1). Bei einer Großrechneranwendung ist die Variable *SCREEN hilfreich (Syntax siehe unten). Damit können Sie feststellen, welcher Bildschirm gerade übertragen wird, ohne ihn anzuzeigen. Sie können dann entsprechend reagieren.

operator ist einer der folgenden Werte:

EQ gleich
NE ungleich
GE größer gleich
LE kleiner gleich
GT größer als
LT kleiner als

Für befehl können Sie jeden Befehl von Entire Connection, außer den Folgenden, benutzen:

IF
IFNOT
WAITFOR

Wenn Sie die optionalen Operanden variable und operator bei der IF-Anweisung weglassen, wird die Variable *SCREEN (gesamter Bildschirm) und der Operator EQ benutzt.

Syntax für *SCREEN

Die Variable *SCREEN kann nur einmal pro IF/IFNOT benutzt werden.

*SCREEN [zeile spalte[länge]]

zeile ist ein Wert zwischen 1 und der maximalen Zeilenanzahl + 1.

spalte ist ein Wert zwischen 1 und der maximalen Zeilenlänge.

länge ist ein Wert zwischen 1 und der Bildschirmgröße.

Zum Beispiel:

*SCREEN steht für: gesamter Bildschirm.

*SCREEN 2 1 steht für: ab Zeile 2, Spalte 1 bis zum Ende des Bildschirms.

*SCREEN 2 1 80 steht für: ab Zeile 2, Spalte 1 die nächsten 80 Positionen.

Beispiele

  • Den gesamten Bildschirm nach NEXT durchsuchen. Wenn NEXT vorkommt, zur Sprungmarke NEXT verzweigen:

    IF 'NEXT' GOTO NEXT
  • Den gesamten Bildschirm nach NEXT durchsuchen. Wenn NEXT nicht vorkommt, zur Sprungmarke WEITER verzweigen:

    IFNOT 'NEXT' GOTO WEITER
  • Ab Zeile 2, Spalte 1 die nächsten vier Positionen nach NEXT durchsuchen:

    IF *SCREEN 2 1 4 EQ 'NEXT' GOTO WEITER
  • Ab Zeile 2, Spalte 1 die nächsten 80 Positionen nach NEXT durchsuchen:

    IF *SCREEN 2 1 80 EQ 'NEXT' GOTO WEITER
  • Ab der in der Variable +ROW enthaltenen Zeile und der in +COL enthaltenen Spalte nach dem Inhalt der lokalen Variable #PARM1 suchen; die Anzahl der zu durchsuchenden Positionen wird durch den Wert in der Variable #CNT3 festgelegt:

    IF *SCREEN +ROW +COL #CNT3 EQ #PARM1 
    GOTO WEITER
  • Die definierte Tastatureingabe an den Host senden, wenn der Inhalt der lokalen Variable #PARM1 nicht leer ist:

    IF #PARM1 NE ' ' TYPE '*NAT' CR

Prozedurdateibeispiele

Findfile.ncp, Copyscr.ncp

Zurückgegebene Variablen

Wenn die Bedingung für den Befehl IF *SCREEN EQ wahr ist, wird die Bildschirmposition der Zeichenkette in den folgenden lokalen Variablen zurückgegeben:

#ROW - die gültigen Werte liegen zwischen 1 und der maximalen Zeilenanzahl + 1

#COL - die gültigen Werte liegen zwischen 1 und der maximalen Zeilenlänge

Verwandte Befehle

WAITFOR

Benutzung

Prozedurdatei: Ja
Befehlszeile: Nein
Taste: Nein
API: Ja