Name
BEZIEHUNGEN
Syntax
BEZIEHUNGEN
Die relationalen Operatoren bestimmen die Beziehung oder das Verhältnis zweier Werte zueinander. Das Ergebnis ist stets numerisch (Typ integer) mit den möglichen Werten 0 (logisch false, falsch) oder 1 (logisch true, wahr).
Werden Werte vom Typ string verglichen, werden von links beginnend Zeichen für Zeichen der beiden Texte miteinander verglichen, bis die erste Zeichenkombination auftaucht, auf die die Operation angewendet werden kann, beziehungsweise die entscheidend ist. Für Größenvergleiche (<, > etc.) wird der Positionswert des Zeichens in der Zeichensatztabelle als Kriterium herangezogen. Ein niedrig stehenderes "a" ist demnach kleiner als ein "b" aber größer als ein "A". Vergleiche z.B. die ASCII/ANSI-Tabelle. Welche Tabelle tatsächlich verwendet wird, ist nicht dokumentiert, es liegt aber die Vermutung nahe, dass die Unicode oder die vom System bereitgestellte Tabelle verwendet wird.
= (Priorität: 5)
Werte sind gleich. Typ numerisch oder string.
Beispiel:
a = 3=2 !=0
t = "Hallo"="Welt" !=0
c = a=t !=1
<> oder # (Priorität: 5)
Werte sind ungleich. Typ numerisch oder string.
Beispiel:
a = 3<>2 !=1
t = "Hallo"#"Welt" !=1
c = a#t !=0
< (Priorität: 5)
1. Wert ist kleiner als 2. Wert. Typ numerisch oder string.
Beispiel:
a = 3<2 !=0
t = "Ab"<"Ba" !=1
c = a < t !=1
> (Priorität: 5)
1. Wert ist größer als 2. Wert. Typ numerisch oder string.
Beispiel:
a = 3>2 !=1
t = "Ab">"Ba" !=0
c = a > t !=1
<= (Priorität: 5)
1. Wert ist kleiner als 2. Wert oder gleich. Typ numerisch oder string.
Beispiel:
a = 3<=2 !=0
t = "Ab"<="Ba" !=1
c = a <= t !=1
>= (Priorität: 5)
1. Wert ist größer als 2. Wert oder gleich. Typ numerisch oder string.
Beispiel:
a = 3>=2 !=1
t = "Ab">="Ba" !=0
c = a >= t !=1
Werden Werte vom Typ string verglichen, werden von links beginnend Zeichen für Zeichen der beiden Texte miteinander verglichen, bis die erste Zeichenkombination auftaucht, auf die die Operation angewendet werden kann, beziehungsweise die entscheidend ist. Für Größenvergleiche (<, > etc.) wird der Positionswert des Zeichens in der Zeichensatztabelle als Kriterium herangezogen. Ein niedrig stehenderes "a" ist demnach kleiner als ein "b" aber größer als ein "A". Vergleiche z.B. die ASCII/ANSI-Tabelle. Welche Tabelle tatsächlich verwendet wird, ist nicht dokumentiert, es liegt aber die Vermutung nahe, dass die Unicode oder die vom System bereitgestellte Tabelle verwendet wird.
= (Priorität: 5)
Werte sind gleich. Typ numerisch oder string.
Beispiel:
a = 3=2 !=0
t = "Hallo"="Welt" !=0
c = a=t !=1
<> oder # (Priorität: 5)
Werte sind ungleich. Typ numerisch oder string.
Beispiel:
a = 3<>2 !=1
t = "Hallo"#"Welt" !=1
c = a#t !=0
< (Priorität: 5)
1. Wert ist kleiner als 2. Wert. Typ numerisch oder string.
Beispiel:
a = 3<2 !=0
t = "Ab"<"Ba" !=1
c = a < t !=1
> (Priorität: 5)
1. Wert ist größer als 2. Wert. Typ numerisch oder string.
Beispiel:
a = 3>2 !=1
t = "Ab">"Ba" !=0
c = a > t !=1
<= (Priorität: 5)
1. Wert ist kleiner als 2. Wert oder gleich. Typ numerisch oder string.
Beispiel:
a = 3<=2 !=0
t = "Ab"<="Ba" !=1
c = a <= t !=1
>= (Priorität: 5)
1. Wert ist größer als 2. Wert oder gleich. Typ numerisch oder string.
Beispiel:
a = 3>=2 !=1
t = "Ab">="Ba" !=0
c = a >= t !=1
Die Verwendung der Operatoren mit numerischen Werten vom Typ real ist problematisch, da es auf Grund ArchiCAD®-interner Umwandlung der Werte zu minimalen Abweichungen (z.B. 2.0000000001 statt 2) kommen kann, die dann fehlinterprtiert werden. Dieser Möglichkeit ist durch geeignete Konstruktionen Rechnung zu tragen. Z.B: ABS(a-b)<0.0001 statt a=b
Bei der Prüfung des GDL-Textes im Editor wird ein Hinweis zu dieser Problematik für jede betroffene Stelle im Skript ausgegeben. Einen GDL-Fehler stellt es aber nicht dar!
Bei der Prüfung des GDL-Textes im Editor wird ein Hinweis zu dieser Problematik für jede betroffene Stelle im Skript ausgegeben. Einen GDL-Fehler stellt es aber nicht dar!