<< Inhaltsverzeichnis Suchen >>

#IF

Compileranweisung

Syntax:

#IF [!]<NUM-VARIABLE>
      [[AND[!]<NUM-VARIABLE>]...
     
[OR[!]<NUM-VARIABLE>]...]...
 ... Anweisungen ...
[#ELSE] ... Anweisungen ...
#ENDIF

Bedeutung:

Die Abfrage #IF <NUM-VARIABLE> ist falsch, wenn die Variable nicht definiert ist oder mit dem Wert 0 definiert wurde. In diesem Fall werden alle Zeilen des Macros bis zum nächsten #ELSE bzw. #ENDIF überlesen.

 

Ist #IF <NUM-VARIABLE> wahr, so werden alle Zeilen bis zum #ELSE bzw. #ENDIF generiert.

 

Ist #IF <NUM-VARIABLE> falsch, so werden alle Zeilen vom #ELSE bis zum #ENDIF generiert, falls ein #ELSE-Zweig vorhanden ist.

 

Das Zeichen '!' bedeutet die Verneinung. !<NUM-VARIABLE> ist wahr, wenn die Variable nicht oder mit 0 definiert ist, andernfalls ist !<NUM-VARIABLE> falsch.

Beispiel:

#DEFINE TEXT                 0
#DEFINE ASCII                 1

 

#IF TEXT
SHELL "dir *.txt"
#ENDIF

 

#IF ASCII
SHELL "dir *.dat"
#ENDIF

 

In diesem Beispiel wird nur der Befehl SHELL "dir *.dat" generiert, da TEXT mit 0 definiert ist. Soll das Programm für ASCII generiert werden, muß nur die Variable ASCII einen Wert <> 0 erhalten und TEXT auf 0 gesetzt werden.

 

Auch folgende Lösung ist möglich:

 

#DEFINE TEXT 0

 

#IF !TEXT
SHELL "dir *.dat"
#ENDIF

 

#IF TEXT
SHELL "dir *.txt"
#ENDIF

 

oder

 

#DEFINE TEXT 0

 

#IF TEXT
SHELL "dir *.txt"
#ELSE
SHELL "dir *.dat"
#ENDIF

 

Mit AND und OR können Variablen verkünpft werden. Klammern sind dabei nicht möglich. Werden AND und OR in einem Ausdruck verwendet, so wird der Ausdruck von rechts nach links abgearbeitet.

Beispiel:

#IF A OR B AND C
bedeutet: A OR (B AND C)

 

#IF A AND B OR C AND D
bedeutet: A AND (B OR (C AND D))

siehe auch:

#DEFINE, GEN_MSDOS, GEN_WINDOWS, GEN_WIN32, GEN_UNIX, MAIN