DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des chaînes
  • Recherche de la chaîne de caractères
  • Unicode/Ansi
  • Caractères pris en compte pour la ponctuation et les espaces
  • Divers
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
Recherche la position d'une chaîne de caractères dans une autre chaîne de caractères (ou dans un Buffer).
Il est également possible de rechercher la position d'une des chaînes de caractères présentes dans un tableau.
Exemple
n est un entier
MaChaîne est une chaîne = "What a wonderful World"
n = Position(MaChaîne, "won", 1, DepuisDébut)
// Renvoie 8 (position du "w" de "wonderful")
n = Position(MaChaîne, "XXX")
// Renvoie 0 (pas de "XXX" dans la chaîne)
n = Position(MaChaîne, "l", 0, DepuisFin)
// Renvoie 21 (position du "l" de "World")
n = Position(MaChaîne, "e", 11)
// Renvoie 12 (position du "e" de "wonderful")
n = Position(MaChaîne, "o", Taille(MaChaîne), DepuisFin)
// Renvoie 19 (position du "o" de "World")
n = Position(MaChaîne, "o", n-1, DepuisFin)
// Renvoie 9 (position du "o" de "wonderful")
n = Position(MaChaîne, "o", n-1, DepuisFin)
// Renvoie 0 (il n'y a plus de "o")
n est un entier
MaChaîne2 est une chaîne = "http://Serveur/Fichier.html"
n = Position(MaChaîne2,["/","//"])
// Renvoie 6
n = Position(MaChaîne2,["/","//"], 8)
// Renvoie 15
Syntaxe

Rechercher la position d'une chaîne de caractères dans une autre chaîne de caractères Masquer les détails

<Résultat> = Position(<Chaîne initiale> , <Chaîne à rechercher> [, <Position de départ>])
<Résultat> : Entier
  • Position du premier caractère de la chaîne de caractères recherchée dans la chaîne initiale,
  • 0 si la chaîne recherchée n'a pas été trouvée.
    Cette position est donnée par rapport au début de la chaîne.
<Chaîne initiale> : Chaîne de caractères
Chaîne de caractères dans laquelle la recherche doit être effectuée (taille maximale : 2 Go).
<Chaîne à rechercher> : Chaîne de caractères
Chaîne de caractères à rechercher dans la chaîne initiale.
<Position de départ> : Entier optionnel
Indice du caractère à partir duquel la recherche doit être effectuée. Par défaut, la recherche commence à partir du premier caractère (caractère numéro 1).
Pour effectuer une recherche depuis la fin de la chaîne (constante DepuisFin), ce paramètre doit correspondre à 0 ou à la taille de la chaîne.
Si ce paramètre est négatif, la recherche commence à partir du premier caractère.
Si ce paramètre est supérieur au nombre de caractères de la <Chaîne initiale>, <Résultat> est égal à 0.

Rechercher une chaîne de caractères dans un tableau de chaînes de caractères Masquer les détails

(<Résultat>, <Indice>) = Position(<Chaîne initiale> , <Tableau de chaînes à rechercher> [, <Position de départ>])
<Résultat> : Entier
  • Position du premier caractère de la première chaîne de caractères du tableau trouvée dans la chaîne initiale.
    Cette position est donnée par rapport au début de la chaîne.
  • 0 si aucune des chaînes recherchées n'a été trouvée.
<Indice> : Entier
Indice de la chaîne trouvée dans le tableau.
<Chaîne initiale> : Chaîne de caractères
Chaîne de caractères dans laquelle la recherche doit être effectuée (taille maximale : 2 Go).
<Tableau de chaînes à rechercher> : Tableau
Tableau contenant les chaînes de caractères à rechercher dans la chaîne initiale.
<Position de départ> : Entier optionnel
Indice du caractère à partir duquel la recherche doit être effectuée. Par défaut, la recherche commence à partir du premier caractère (caractère numéro 1). Pour effectuer une recherche depuis la fin de la chaîne, ce paramètre doit correspondre à 0 ou à la taille de la chaîne.
Si ce paramètre est négatif, la recherche commence à partir du premier caractère.
Si ce paramètre est supérieur au nombre de caractères de la <Chaîne initiale>, <Résultat> est égal à 0.
Remarques

Recherche de la chaîne de caractères

Par défaut, la recherche est sensible à la casse : la chaîne recherchée doit avoir la même casse que la chaîne à trouver dans la chaîne. Pour effectuer une recherche non sensible à la casse, utilisez le paramètre SansCasse.
Les positions dans une chaîne de caractères sont toujours données depuis le début de la chaîne, quel que soit le sens de parcours de la recherche.
Pour utiliser la fonction Position avec le paramètre DepuisFin, il est nécessaire de commencer à la position calculée par Taille(<Chaîne initiale>). Par exemple :
Position(MaChaîne, "\", Taille(MaChaîne), DepuisFin)
La syntaxe suivante peut également être utilisée. Dans ce cas, le paramètre 0 permet à la fonction de sélectionner la position de départ la plus adaptée.
Position(MaChaîne, "\", 0, DepuisFin)

Unicode/Ansi

La fonction Position permet de rechercher la position d'une chaîne dans une chaîne Unicode ou Ansi.
Des chaînes Ansi et/ou Unicode peuvent être utilisées dans les paramètres <Chaîne initiale> et <Chaîne à rechercher> (il est possible d'avoir un paramètre au format Unicode et un paramètre au format Ansi).
La règle de conversion utilisée est la suivante :
  • Si l'une au moins des chaîne est Unicode, toutes les chaînes sont converties en Unicode, et l'opération est réalisée en Unicode.
  • sinon, l'opération est réalisée en Ansi.

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)

Divers

La fonction PositionOccurrence permet de connaître la position de la Nème occurrence d'une sous-chaîne en effectuant une recherche soit depuis le début de la chaîne, soit depuis la fin de la chaîne.
Composante : wd290vm.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cas particulier
La fonction Position() retourne également 0 si la chaîne recherchée est vide.
Arthur
25 fév. 2020

Dernière modification : 21/06/2022

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