Version 11.1 (Geändert)
Vergleichsoperatoren vergleichen zwei Werte miteinander und geben TRUE oder FALSE zurück. Sie können Vergleichsoperatoren bei Ausdrücken vom Typ alphanumerisch, numerisch, Datum, Zeit und Zeiger einsetzen. Es gibt folgende Vergleichsoperatoren:
Alphanumerisch
Operation | Syntax | Ergibt | Ausdruck | Wert |
Gleichheit | String = String | Boolean | "abc" = "abc" | True |
"abc" = "abd" | False | |||
Ungleichheit | String # String | Boolean | "abc" # "abd" | True |
"abc" # "abc" | False | |||
Größer als | String > String | Boolean | "abd" > "abc" | True |
"abc" > "abc" | False | |||
Kleiner als | String < String | Boolean | "abc" < "abd" | True |
"abc" < "abc" | False | |||
Größer als oder gleich | String >= String | Boolean | "abd" >= "abc" | True |
"abc" >= "abd" | False | |||
Kleiner als oder gleich | String <= String | Boolean | "abc" <= "abd" | True |
"abd" <= "abc" | False | |||
Enthält Schlüsselwort | String % String | Boolean | "Alpha Bravo" % "Bravo" | True |
"Alpha Bravo" % "ravo" | False |
Wichtig: Weitere Informationen dazu finden Sie am Ende dieses Abschnitts.
Numerisch
Operation | Syntax | Ergibt | Ausdruck | Wert |
Gleichheit | Zahl = Zahl | Boolean | 10 = 10 | True |
10 = 11 | False | |||
Ungleichheit | Zahl # Zahl | Boolean | 10 #11 | True |
10 # 10 | False | |||
Größer als | Zahl > Zahl | Boolean | 11 > 10 | True |
10 > 11 | False | |||
Kleiner als | Zahl < Zahl | Boolean | 10 < 11 | True |
11 < 10 | False | |||
Größer als oder gleich | Zahl >= Zahl | Boolean | 11 >= 10 | True |
10 >= 11 | False | |||
Kleiner als oder gleich | Zahl <= Zahl | Boolean | 10 <= 11 | True |
11 <= 10 | False |
Datum
Operation | Syntax | Ergibt | Ausdruck | Wert |
Gleichheit | Datum = Datum | Boolean | !1.1.97! =!1.1.97! | True |
!20.1.97! =!1.1.97! | False | |||
Ungleichheit | Datum # Datum | Boolean | !20.1.97! # !1.1.97! | True |
!1.1.97! # !1.1.97! | False | |||
Größer als | Datum > Datum | Boolean | !20.1.97! > !1.1.97! | True |
!1.1.97! > !1.1.97! | False | |||
Kleiner als | Datum < Datum | Boolean | !1.1.97! < !20.1.97! | True |
!1.1.97! < !1.1.97! | False | |||
Größer als oder gleich | Datum >= Datum | Boolean | !20.1.97! >=!1.1.97! | True |
!1.1.97!>=!20.1.97! | False | |||
Kleiner als oder gleich | Datum <= Datum | Boolean | !1.1.97!<=!20.1.97! | True |
!20.1.97!<=!1.1.97! | False |
Zeit
Operation | Syntax | Ergibt | Ausdruck | Wert |
Gleichheit | Zeit = Zeit | Boolean | ?01:02:03? = ?01:02:03? | True |
?01:02:03? = ?01:02:04? | False | |||
Ungleichheit | Zeit # Zeit | Boolean | ?01:02:03? # ?01:02:04? | True |
?01:02:03? # ?01:02:03? | False | |||
Größer als | Zeit > Zeit | Boolean | ?01:02:04? > ?01:02:03? | True |
?01:02:03? > ?01:02:03? | False | |||
Kleiner als | Zeit < Zeit | Boolean | ?01:02:03? < ?01:02:04? | True |
?01:02:03? < ?01:02:03? | False | |||
Größer als oder gleich | Zeit >= Zeit | Boolean | ?01:02:03? >=?01:02:03? | True |
?01:02:03? >=?01:02:04? | False | |||
Kleiner als oder gleich | Zeit <= Zeit | Boolean | ?01:02:03? <=?01:02:03? | True |
?01:02:04? <=?01:02:03? | False |
Zeiger
Bei Zeigern sind nur die Operatoren gleich und ungleich möglich: Wenn gilt
` vPtrA und vPtrB zeigen auf das gleiche Objekt vPtrA:=->EinObjekt vPtrB:=->EinObjekt ` vPtrC zeigt auf ein anderes Objekt vPtrC:=->ein anderes Objekt
ergibt sich folgendes:
Operation | Syntax | Ergibt | Ausdruck | Wert |
Gleichheit | Zeiger = Zeiger | Boolean | vPtrA = vPtrB | True |
vPtrA = vPtrC | False | |||
Ungleichheit | Zeiger # Zeiger | Boolean | vPtrA # vPtrC | True |
vPtrA # vPtrB | False |
Vergleiche vom Typ alphanumerisch
Beachten Sie folgende Regeln:
Strings werden Zeichen für Zeichen miteinander verglichen (außer bei Suchen nach Schlüsselwort).
Die Groß- und Kleinschreibung wird nicht berücksichtigt. So gibt "a"="A" TRUE zurück. Wollen Sie die Schreibweise von zwei Zeichen überprüfen, vergleichen Sie deren Zeichen Codes. So ergibt z.B. folgender Ausdruck FALSE:
Character code ("A") =Character code ("a") ` da 65 ungleich 97 ist
Diakritische Zeichen werden nicht berücksichtigt. 4D verwendet beim Vergleich die Zeichen des Systems auf Ihrem Rechner. So ergibt z.B. folgender Ausdruck TRUE:
"Muller" = "Müller" "u" = "Ü" "A"= "ä", "à", "â" ` usw.
Bei der Suche nach Schlüsselwörtern werdenWörter nur im ganzen berücksichtigt. Der Operator % gibt immer Falsch zurück, wenn die Suche mehr als ein Wort oder nur einen Teil davon betrifft, z.B. eine Vorsilbe. Wörter werden definiert als Zeichenketten, getrennt durch Wortumbruch", also Leerzeichen, Bindestrich, Gedankenstrich, o.ä. Ein Apostroph, z.B. Today's gilt als Teil des Wortes. Sie können auch nach Nummern suchen, da sie inkl. Trennzeichen für Tausend oder Dezimalstellen ( . , ) als Ganzes gewertet werden. Andere Zeichen (Währungssymbole, Temperatur, usw.) werden dabei ignoriert.
"Alpha Bravo Charlie" % "Bravo" ` Gibt Wahr zurück "Alpha Bravo Charlie" % "vo" ` Gibt Falsch zurück "Alpha Bravo Charlie" % "Alpha Bravo" ` Gibt Falsch zurück "Alpha,Bravo,Charlie" % "Alpha" ` Gibt Wahr zurück "Software und Computer" % "comput@" ` Gibt Wahr zurück
Hinweis: Weitere Informationen zu den Regeln bei Schlüsselwörtern finden Sie unter http://www.unicode.org/unicode/reports/tr29/#Word_Boundaries
Das Jokerzeichen (@) wird berücksichtigt. @ kann für beliebig viele Zeichen stehen. So ergibt z.B. folgender Ausdruck TRUE:
"abcdefghij" = "abc@"
Sie können das Jokerzeichen nur für den zweiten Operanden (der String auf der rechten Seite) einsetzen. Demnach ergibt folgender Ausdruck FALSE, da @ im ersten Operanden lediglich als 1 Zeichen gewertet wird:
"abc@" = "abcdefghij"
Das Jokerzeichen kann ein Zeichen, viele Zeichen oder gar kein Zeichen ersetzen. Demnach ergeben folgende Ausdrücke TRUE:
"abcdefghij" = "abcdefghij@" "abcdefghij" = "@abcdefghij" "abcdefghij" = "abcd@efghij" "abcdefghij" = "@abcdefghij@" "abcdefghij" = "@abcde@fghij@"
Zwei aufeinanderfolgende Jokerzeichen werden dagegen nicht erkannt. Hier gibt der Ausdruck FALSE zurück:
"abcdefghij" = "abc@@fg"
Enthält der Vergleichsoperator ein < oder > Zeichen, wird nur der Vergleich mit einem Joker am Ende des Operanden unterstützt:
"abcd"< = "abc@j" `Gültiger Vergleich "abcd" = "abc@ef" `Ungültiger Vergleich
Hinweis
Wollen Sie Vergleiche oder Suchläufe mit @ als Zeichen, also nicht als Joker durchführen, gibt es zwei Möglichkeiten:
Sie verwenden die Anweisung Character code (At sign).
Angenommen, Sie wollen wissen, ob ein String mit dem Zeichen @ endet.
- der folgende Ausdruck ist immer WAHR, außer $vsValue ist leer:
($vsValue[[Length($vsValue)]]="@")
- der folgende Ausdruck wird korrekt interpretiert:
(Character code ($vsValue[[Length($vsValue)]])#64)
Sie aktivieren im Dialogfenster Datenbankeigenschaften die Option "@ ist normales Zeichen in Suchen und Sortieren". Dann gilt @ als normales Zeichen, wenn es innerhalb einer Zeichenkette gefunden wird. Mit dieser Option können Sie beeinflussen, wie Vergleichsoperatoren in Such- und Sortierläufen verwendet werden. Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus.
Referenz
Bildoperatoren, Bit Operatoren, Boolean Operatoren, Datumsoperatoren, Numerische Operatoren, Operatoren, Zeitoperatoren.