4D v19

Comparer chaines

Accueil

 
4D v19
Comparer chaines

Comparer chaines 


 

Comparer chaines ( aString ; bString {; options} ) -> Résultat 
Paramètre Type   Description
aString  Chaîne in Chaîne à comparer
bString  Chaîne in Chaîne à comparer
options  Entier long in Règle(s) de comparaison
Résultat  Entier long in Résultat de la comparaison de chaînes

La commande Comparer chaines retourne une valeur négative, zéro, ou une valeur positive, en fonction du paramètre aString selon qu'il soit évalué comme étant inférieur, égal ou supérieur au paramètre bString.  

Dans le paramètre aString, passez une valeur texte.

Dans le paramètre aString, passez une valeur texte à comparer avec aString.

Par défaut, Comparer chaines fonctionne comme si l'opérateur "<" (inférieur à) était utilisé. (Voir Opérateurs de chaînes). Cela peut être modifié à l'aide du paramètre options. Vous pouvez passer une ou plusieurs des constantes du thème Chaînes

 

Constante Valeur Comment
sk casse insensible 2

Les chaînes sont comparées en fonction de la langue des données, indépendamment des différences de capitalisation. A noter que les signes diacritiques sont pris en compte. Par exemple, "A" est considéré comme identique à "a", mais "a" n'est pas considéré comme identique à "à".

 

Peut être combinée avec : 

  • sk codes caractère
  • sk diacritique insensible
  • sk kana insensible
  • sk strict
  • sk mot complet (commande Position uniquement)
sk codes caractère 1

Les chaînes sont comparées en fonction des codes de caractères. Les paramètres de langue des données ne sont pas pris en compte lors de la comparaison.

Peut être combinée avec : sk casse insensible 

Uniquement pour les plages "a-z" ou "A-Z" ranges. (ex : Alpha = alpha, mais Alpha # âlphà)

sk diacritique insensible 4

Les chaînes sont comparées en fonction de la langue des données, mais le signe diacritique (par exemple, un accent ou un symbole) des lettres est ignoré. Par exemple, "a" est considéré comme identique à "à".

Peut être combinée avec :

  • sk casse insensible
  • sk kana insensible
  • sk strict
  • sk largeur insensible
  • sk mot complet (commande Position uniquement)
sk kana insensible 8

S'applique à la langue japonaise. Les chaînes sont comparées en fonction de la signification (et non du style d'écriture) dans la langue des données. Par exemple, "あ" est considéré comme identique à "ア".

Lorsque cette option est définie, sk largeur insensible est implicite (considérée comme définie), mais l'inverse n'est pas vrai.

 

Peut être combinée avec :

  • sk casse insensible
  • sk diacritique insensible
  • sk strict
  • sk largeur insensible
sk largeur insensible 16

S'applique à la langue japonaise. Les chaînes sont comparées par largeur de caractère en fonction de la langue des données. Par exemple, "ア" est considéré comme identique à "ア".

 

Peut être combinée avec :

  • sk casse insensible
  • sk diacritique insensible
  • sk kana insensible
  • sk strict
sk strict 0

Les chaînes sont comparées pour les correspondances exactes en fonction de la langue actuelle des données. Dans la plupart des cas, les majuscules et les signes diacritiques des lettres sont pris en compte lors de la comparaison.

Peut être combinée avec :

  • sk casse insensible
  • sk diacritique insensible
  • sk kana insensible
  • sk largeur insensible
 

Pour plus d'informations sur la définition du langage de données, veuillez consulter la section Comparaison de texte dans le Manuel de Développement.

 

Attention : Vous ne pouvez pas utiliser le caractère @ avec Comparer chaines. Par exemple, si vous passez abc@" dans aString ou bString, la commande évaluera la chaîne "abc@" et non une chaîne "abc" accompagnée de tout autre caractère.

 

Valeur retournée

La commande retourne les valeurs entier long suivantes :

 

Valeur Description 
-1 aString est inférieur à bString
0 aString est égal à bString
aString est supérieur à bString

 

Vous souhaitez comparer les chaînes suivantes :

 $string1:="alpha Bravo charlie Delta Echo Fox-Trot"
 $string2:="Alpha Bravo Charlie Delta Echo Fox-Trot"
 
  //comparer les chaînes à l'aide du code caractère
 $result:=Comparer chaines($string1;$string2;sk codes caractère)
  // $result = 1
 
  //comparer les chaînes à l'aide du code caractère mais en ignorant les majuscules
 $result:=Comparer chaines($string1;$string2;sk codes caractère+sk casse insensible)
  // $result = 0

Les exemples suivants illustrent l'incidence des options dans le contexte de la langue de données japonaise :

  //par défaut, kana insensible à la casse
 $result:=Comparer chaines("イロハ";"いろは") // identique
 $result:=Comparer chaines("イロハ";"いろは";sk strict// non identique
 $result:=Comparer chaines("イロハ";"いろは";sk kana insensitive) // identique

  //par défaut, insensible à la casse
 $result:=Comparer chaines("さつき";"さっき") // identique
 $result:=Comparer chaines("さつき";"さっき";sk strict// non identique
 $result:=Comparer chaines("さつき";"さっき";sk case insensitive) // identique

  //par défaut, sensible aux signes diacritiques lorsque la langue des données est définie sur le japonais (différente de toutes les autres langues)
 $result:=Comparer chaines("ete";"été") // identique dans une langue de données autre que le japonais
 $result:=Comparer chaines("ete";"été") // non identique en langue de données japonaise
 $result:=Comparer chaines("うがい";"うかい") // non identique
 $result:=Comparer chaines("うがい";"うかい";sk strict// non identique
 $result:=Comparer chaines("うがい";"うかい";sk diacritic insensitive) // identique

Note : Le paramètre "Ordre de tri approprié pour la recherche" (voir Comparaison de texte) a une incidence sur la commande Comparer chaines. En particulier, la "Marque sonore prolongée Katakana-Hiragana" ou "長音記号" sera interprétée différemment. Le paramètre a également une incidence sur les « marques d'itération japonaises » telles que « ゝ » ou « ゞ ». Par exemple :

 $result:=Comparer chaines("いすず";"いすゞ") // identique si le paramètre est désactivé
 $result:=Comparer chaines("いすず";"いすゞ") // non identique si le paramètre est activé
 $result:=Comparer chaines("ラーメン";"ラーメン") //  identique si le paramètre est activé
 $result:=Comparer chaines("ラーメン"; "ラーメン") // non identique si le paramètre est désactivé



Voir aussi  

Position

 
PROPRIÉTÉS 

Produit : 4D
Thème : Chaînes de caractères
Numéro : 1756
Nom intl. : Compare strings

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Créé : 4D v18 R6

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v19)
4D - Langage ( 4D v19.1)