Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
Compare strings

Compare strings 


 

Compare strings ( aString ; bString {; options} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
aString  String in String zum Vergleichen
bString  String in String zum Vergleichen
options  Lange Ganzzahl in Vergleichskriterien
Funktionsergebnis  Lange Ganzzahl in Ergebnis des Stringvergleichs

Die Funktion Compare strings gibt einen negativen, Null oder positiven Wert zurück, je nachdem, ob aString als kleiner, gleich oder größer als bString gewertet wird.  

Im Parameter aString übergeben Sie einen Wert vom Typ Text.  

Im Parameter bString übergeben Sie einen Wert vom Typ Text zum Vergleichen mit aString.  

Standardmäßig arbeitet Compare strings mit dem Operator "<" (kleiner als) (siehe String operators). Das können Sie mit dem Parameter options ändern. Sie können eine oder mehrere Konstanten unter der Gruppe Strings übergeben: 

Konstante Wert Kommentar
sk case insensitive 2

Strings werden entsprechend der aktuellen Datensprache verglichen, ohne Berücksichtigung von Unterschieden in der Großschreibung. Beachten Sie, dass diakritische Zeichen in Betracht gezogen werden. So wird z. B. "A" mit "a" gleichgesetzt, "a" jedoch nicht mit "à". Standardmäßig unterscheidet der 4D String-Vergleich nicht zwischen Groß- und Kleinschreibung. 

 

Kann kombiniert werden mit: 

  • sk char codes OR sk diacritic insensitive
  • sk whole word (nur Funktion Position)

Diese Konstante impliziert die Verwendung der folgenden Konstanten (die zur besseren Lesbarkeit auch kombiniert werden können):

  • sk kana insensitive
  • sk width insensitive
  • sk strict
sk char codes 1

Vergleicht Strings gemäß Zeichen-Codes. Berücksichtigt beim Vergleichen nicht die aktuellen Einstellungen der Sprache der Daten.

 

Kombinierbar mit: sk case insensitive 

Nur für Bereiche "a-z" oder "A-Z". (z.B. Alpha = alpha, aber Alpha # âlphà)

sk diacritic insensitive 4

Strings werden entsprechend der aktuellen Datensprache verglichen, wobei die diakritischen Zeichen (z. B. Akzent oder Symbol) von Buchstaben ignoriert werden. Zum Beispiel wird "a" als "à" betrachtet. 

 

Kann kombiniert werden mit:

  • sk case insensitive
  • sk whole word (nur Funktion Position)

Diese Konstante impliziert die Verwendung der folgenden Konstanten (die zur besseren Lesbarkeit auch kombiniert werden können):

  • sk kana insensitive
  • sk width insensitive
  • sk strict
sk kana insensitive 8

Für die japanische Sprache. Steuert die Unterscheidung zwischen Hiragana- und Katakana-Silben. Aus semantischer Sicht ist der Unterschied zwischen Hiragana und Katakana in der Regel signifikant, aber um so viele Ergebnisse wie möglich zu erfassen, wird der Unterschied in 4D standardmäßig ignoriert (kana-insensitive). Zum Beispiel wird "あ" als dasselbe wie "ア" angesehen. Mit der Option sk strict wird ein kana-empfindlicher Vergleich durchgeführt. sk kana insensitive kann verwendet werden, um die Regel teilweise zu lockern, damit sie kana-unempfindlich ist. 

 

Hinweis: Die Datensprache muss auf Japanisch eingestellt sein, um diese Option zu verwenden. Bei allen anderen Sprachen wird die Option ignoriert und Compare strings funktioniert so, als ob sk strict angegeben wurde. Mit anderen Worten, wenn diese Option in einem nicht-japanischen Kontext gesetzt wird, wird der Vergleich kana-empfindlich (das Gegenteil ist der Fall).

 

Kann kombiniert werden mit:

  • sk case insensitive
  • sk diacritic insensitive

 

Diese Konstante impliziert die Verwendung der folgenden Konstanten (die zur besseren Lesbarkeit auch kombiniert werden können): 

  • sk width insensitive
  • sk strict
sk strict 0

Strings werden auf exakte Übereinstimmungen gemäß der aktuellen Datensprache verglichen. In den meisten Fällen werden Großschreibung und diakritische Zeichen von Buchstaben beim Vergleich berücksichtigt. 

 

Kann kombiniert werden mit:

  • sk case insensitive
  • sk diacritic insensitive
  • sk kana insensitive

Diese Konstante impliziert die Verwendung der folgenden Konstante (die zur besseren Lesbarkeit auch kombiniert werden kann):

  • sk width insensitive
sk width insensitive 16

Für die japanische Sprache. Entspricht dem Unicode-Standard "Ostasiatische Breite", wie in  Unicode Standard Annex #11 definiert. Aus semantischer Sicht ist der Unterschied zwischen einem "schmalen" und einem "breiten" Zeichen oder einem "Zeichen mit voller Breite" und einem "Zeichen mit halber Breite" in der Regel unbedeutend, was der Standardmodus in 4D ist. Zum Beispiel wird "ア" als dasselbe angesehen wie "ア". Mit der Option sk strict wird ein breitenabhängiger Vergleich durchgeführt. Die Option sk width insensitive kann verwendet werden, um die Regel teilweise zu lockern, so dass sie breitenunempfindlich ist (siehe Beispiel 2). 

 

Hinweis:

  • Die Datensprache muss auf Japanisch eingestellt sein, um diese Option zu verwenden. Bei allen anderen Sprachen wird die Option ignoriert und Compare strings funktioniert so, als ob sk strict angegeben wurde. Mit anderen Worten, das Setzen dieser Option in einem nicht-japanischen Kontext würde die Vergleichsbreite empfindlich machen (der gegenteilige Effekt).
  • Diese Option wird von der Funktion Position ignoriert. Unicode width insensitive collation ist asymmetrisch und kann nicht nach Position oder Länge lokalisiert werden. 

 

Kombinierbar mit:

  • sk case insensitive
  • sk diacritic insensitive
  • sk kana insensitive

 

Diese Konstante impliziert die Verwendung der folgenden Konstante (die zur besseren Lesbarkeit auch kombiniert werden kann):

  • sk strict

Weitere Informationen dazu finden Sie im Abschnitt des Handbuchs Designmodus.

Warnung: Sie können mit Compare strings nicht das Jokerzeichen @ verwenden. Übergeben Sie beispielsweise "abc@" in aString oder bString, bewertet die Funktion den String "abc@" nur als "abc" ohne weitere Zeichen.

 

Zurückgegebener Wert

Die Funktion gibt folgende Werte vom Typ Lange Ganzzahl zurück:

Wert Beschreibung
-1 aString ist vor bString
0 aString is gleich bString
aString ist nach bString

Sie möchten die folgenden Zeichenketten vergleichen: 

 $string1:="alpha Bravo charlie Delta Echo Fox-Trot"
 $string2:="Alpha Bravo Charlie Delta Echo Fox-Trot"
 
  //compare the strings using the character code
 $result:=Compare strings($string1;$string2;sk character codes)
  // $result = 1
 
  //compare the strings using the character code but ignoring any capitalization
 $result:=Compare strings($string1;$string2;sk character codes+sk case insensitive)
  // $result = 0

Die folgenden Beispiele veranschaulichen die spezifischen Auswirkungen der Optionen im Kontext der japanischen Datensprache:

  //default is kana insensitive
 $result:=Compare strings("イロハ";"いろは") // equal
 $result:=Compare strings("イロハ";"いろは";sk strict// not equal
 $result:=Compare strings("イロハ";"いろは";sk kana insensitive// equal

  //default is case insensitive
 $result:=Compare strings("さつき";"さっき") // equal
 $result:=Compare strings("さつき";"さっき";sk strict// not equal
 $result:=Compare strings("さつき";"さっき";sk case insensitive// equal

  //default is diacritic sensitive when the data language is set to Japanese (different to all other languages)
 $result:=Compare strings("ete";"été") // equal in non-Japanese data language
 $result:=Compare strings("ete";"été") // not equal in Japanese data language
 $result:=Compare strings("うがい";"うかい") // not equal
 $result:=Compare strings("うがい";"うかい";sk strict// not equal
 $result:=Compare strings("うがい";"うかい";sk diacritic insensitive// equal

Hinweis: Die Einstellung "Für die Suche geeignete Sortierreihenfolge" (siehe ) hat Auswirkungen auf den Befehl Compare strings. Insbesondere das "Katakana-Hiragana-Langtonzeichen" oder "長音記号" wird anders interpretiert. Die Einstellung hat auch Auswirkungen auf "Japanische Iterationszeichen" wie "ゝ" oder "ゞ". Zum Beispiel:

 $result:=Compare strings("いすず";"いすゞ") // equal if setting is disabled
 $result:=Compare strings("いすず";"いすゞ") // not equal if setting is enabled
 $result:=Compare strings("ラーメン";"ラーメン") // equal if setting is enabled
 $result:=Compare strings("ラーメン";&NBSP;"ラーメン") // not equal if setting is disabled



Siehe auch 

Position

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: String
Nummer: 1756

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v18 R6

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)