DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des chaînes
  • Équivalences entre la fonction ChaîneCompare et les opérateurs de comparaison
  • Comparaison des numériques
  • Caractères pris en compte pour la ponctuation et les espaces
  • Fonction ChaîneCompare et UNICODE
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Compare caractère par caractère deux chaînes :
  • selon l'ordre des caractères ASCII.
  • selon l'ordre lexicographique.
Exemple
MaChaîne1 est une chaîne = "Le développement facile"
MaChaîne2 est une chaîne = "Le développement simple"
RésultatCompare est un entier = ChaîneCompare(MaChaîne1, MaChaîne2)
// RésultatCompare = -1 : le caractère 'f' est inférieur au caractère 's'
Syntaxe
<Résultat> = ChaîneCompare(<Première chaîne> , <Seconde chaîne> [, <Options>])
<Résultat> : Entier
  • 0 si les chaînes de caractères sont égales.
  • -1 si les caractères de <Première chaîne> sont inférieurs aux caractères de <Seconde chaîne> dans l'ordre des caractères ASCII ou dans l'ordre lexicographique.
  • 1 si les caractères de <Première chaîne> sont supérieurs aux caractères de <Seconde chaîne> dans l'ordre des caractères ASCII ou dans l'ordre lexicographique.
<Première chaîne> : Chaîne de caractères
Chaîne de caractères à comparer.
<Seconde chaîne> : Chaîne de caractères
Chaîne de caractères à comparer.
<Options> : Constante (ou combinaison de constantes) optionnelle
Options de comparaison :
ccNormal
(valeur par défaut)
Comparaison normale, similaire à l'opérateur '='.
ccOrdreLexicographiqueComparaison des chaînes de caractères selon l'ordre lexicographique (par exemple, le caractère 'é' est compris entre les caractères 'e' et 'f').
WEBDEV - Code NavigateurPHP Cette constante n'est pas disponible.
ccRespecteNumériqueComparaison en tenant compte des numériques au sein des chaînes (dans ce cas, "10" est après "9").
ccSansAccentComparaison sans tenir compte des accents.
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
ccSansCasseComparaison sans tenir compte de la casse des caractères (majuscules/minuscules).
ccSansEspaceComparaison sans tenir compte des espaces avant et après les chaînes de caractères à comparer.
ccSansEspaceIntérieurComparaison sans tenir compte des espaces présents à l'intérieur des chaînes de caractères à comparer.
AndroidWidget AndroidJavaPHP Cette constante n'est pas disponible.
ccSansPonctuationNiEspaceComparaison sans tenir compte de la ponctuation ni des espaces (voir Notes pour plus de détails).
WEBDEV - Code Navigateur Cette constante n'est pas disponible.
Remarques

Équivalences entre la fonction ChaîneCompare et les opérateurs de comparaison

  • Opérateur = :
    L'opérateur = est équivalent au code suivant : ChaîneCompare(<Chaîne1>, <Chaîne 2>, ccNormal)
  • Opérateur ~= :
    L'opérateur ~= est équivalent au code suivant : ChaîneCompare(<Chaîne1>, <Chaîne 2>, ccSansCasse + ccSansAccent + ccSansEspace)
    WEBDEV - Code Navigateur Cette syntaxe n'est pas disponible.
  • Opérateur ~~ :
    L'opérateur ~~ est équivalent au code suivant : ChaîneCompare(<Chaîne1>, <Chaîne 2>, ccSansCasse + ccSansAccent + ccSansPonctuationNiEspace)
    WEBDEV - Code Navigateur Cette syntaxe n'est pas disponible.
  • Opérateur <, >, <= et >= :
    Ces opérateurs sont équivalents au code suivant : ChaîneCompare(<Chaîne1>, <Chaîne 2>, ccOrdreLexicographique)
    WEBDEV - Code Navigateur Cette syntaxe n'est pas disponible.
Pour plus de détails sur les opérateurs de comparaison, consultez les Opérateurs de comparaison.
Etats et RequêtesWindowsLinuxUniversal Windows 10 AppAndroidWidget AndroidJavaCode Utilisateur (MCU)Ajax

Comparaison des numériques

La constante ccRespecteNumérique effectue le tri en tenant compte de la valeur numérique représentée par les chiffres et non pas simplement de l'ordre alphabétique des chiffres.
Ainsi sans la constante ccRespecteNumérique, les chaînes suivantes seront classées dans cet ordre : "chaîne1", "chaîne10", "chaîne2"
Avec la constante ccRespecteNumérique, les mêmes chaînes seront classées dans cet ordre : "chaîne1", "chaîne2", "chaîne10"
Voici quelques exemples de comparaison réalisés avec ou sans la constante ccRespecteNumérique :
Tri de chaînes contenant des chiffres sans la constante ccRespecteNumériqueTri de chaînes contenant des chiffres avec la constante ccRespecteNumérique
000
000
001001
00901
011
010009
0909
19
10010
1110
911
Tri de chaînes contenant des chiffres sans la constante ccRespecteNumériqueTri de chaînes contenant des chiffres avec la constante ccRespecteNumérique
10.00Aa7.00Aa
10.01Gh7.01Ba
10.50Ag7.01Dfe
11.00Aa7.50Fg
7.00Aa7.51Tga
7.01Ba8.00Aa
7.01Dfe8.01Gjk
7.50Fg8.01Ty
7.51Tga8.50Ze
8.00Aa9.00Aa
8.01Gjk9.80Er
8.01Ty9.99Zaaa
8.50Ze10.00Aa
9.00Aa10.01Gh
9.80Er10.50Ag
9.99Zaaa11.00Aa

Caractères pris en compte pour la ponctuation et les espaces

Les caractères pris en compte pour la ponctuation et les espaces sont fournis par le système. Pour obtenir la liste de ces caractères, il suffit d'écrire le code WLangage suivant :
s est une chaîne
POUR i = 0 À 255
SI Caract(i) <> ChaîneFormate(Caract(i), ccSansPonctuationNiEspace) ALORS
 s += Caract(i)
FIN
FIN
Info(s)
VersPressePapier(s)
Etats et RequêtesWindowsLinuxUniversal Windows 10 AppAndroidWidget AndroidJavaCode Utilisateur (MCU)PHPAjax

Fonction ChaîneCompare et UNICODE

Il est possible d'utiliser des chaînes ANSI, Unicode et des buffers dans les différents paramètres de la fonction.
La règle de conversion utilisée est la suivante pour les systèmes Ansi (Windows ou Linux) :
  • Si l'une au moins des chaînes est un buffer, toutes les chaînes sont converties en buffer, et l'opération est réalisée avec des buffers.
  • Si la première condition n'est pas remplie, si l'une au moins des chaînes est Unicode, toutes les chaînes sont converties en Unicode et l'opération est réalisée en Unicode (si nécessaire, la conversion est réalisée avec l'alphabet courant).
  • Sinon, l'opération est réalisée en Ansi.
La règle de conversion utilisée est la suivante pour les systèmes Unicode :
  • Si l'une au moins des chaînes est un buffer, toutes les chaînes sont converties en buffers et l'opération est réalisée avec des buffers.
  • Sinon, l'opération est réalisée en Unicode.
Pour plus de détails sur l'UNICODE, consultez Gestion de l'UNICODE.
Rappel : Les paramètres linguistiques utilisés sont définis lors de l'appel de la fonction ChangeAlphabet.
Classification Métier / UI : Code neutre
Composante : wd290vm.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale