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
  • Gestion des ambiguïtés
  • Fonction PositionOccurrence 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
Recherche la Xème position d'une chaîne de caractères dans une chaîne de caractères. Il est également possible de parcourir toutes les positions d'une sous-chaîne dans une chaîne.
Il est également possible de rechercher la Xième position d'une des chaîne de caractères présentes dans un tableau.
Exemple
n = PositionOccurrence("Antananarivo, Madagascar", "g", 1) // Renvoie 19
n = PositionOccurrence("Antananarivo, Madagascar", "zen", 1) // Renvoie 0
n = PositionOccurrence("Antananarivo, Madagascar", "n", 1) // Renvoie 2
n = PositionOccurrence("Antananarivo, Madagascar", "n", 2) // Renvoie 5
// Recherche du 3ème "a" en partant de la fin : 
// La position est donnée en partant du début
n = PositionOccurrence("Antananarivo, Madagascar", "a", 3, DepuisFin)
// Renvoie 18
// Recherche d'un tableau de chaînes
n = PositionOccurrence("Antananarivo, Madagascar", ["an", "ar"], 1) // Renvoie 4
n = PositionOccurrence("Antananarivo, Madagascar", ["an", "ar"], 2) // Renvoie 6
n = PositionOccurrence("Antananarivo, Madagascar", ["an", "ar"], 3) // Renvoie 8
n = PositionOccurrence("Antananarivo, Madagascar", ["an", "ar"], 4) // Renvoie 23
// Parcours des positions de toutes les lettres "a" et "A"
MaChaîne est une chaîne = "Antananarivo, Madagascar"
MaPosition est un entier = PositionOccurrence(MaChaîne, "a", rangPremier, SansCasse)
TANTQUE MaPosition <> 0
Trace(MaPosition) // Renvoie 1, 4, 6, 8, 16, 18, 20, 23
MaPosition = PositionOccurrence(MaChaîne, "a", rangSuivant, SansCasse)
FIN
// Parcours des positions de toutes les lettres "a", "A", "r" et "R"
MaChaîne est une chaîne = "Antananarivo, Madagascar"
MaPosition est un entier = PositionOccurrence(MaChaîne, ["a", "r"], rangPremier, SansCasse)
TANTQUE MaPosition <> 0
Trace(MaPosition) // Renvoie 1, 4, 6, 8, 9, 16, 18, 20, 23, 24
MaPosition = PositionOccurrence(MaChaîne, ["a", "r"], rangSuivant, SansCasse)
FIN
// Parcours des positions de toutes les lettres "an" et "ar"
MaChaîne est une chaîne = "Antananarivo, Madagascar"
MonTableau est un tableau de 2 chaînes
TableauAjoute(MonTableau, "an")
TableauAjoute(MonTableau, "ar")
MaPosition est un entier = PositionOccurrence(MaChaîne, MonTableau, rangPremier, SansCasse)
TANTQUE MaPosition <> 0
Trace(MaPosition) // Renvoie 1, 4, 6, 8, 23
MaPosition = PositionOccurrence(MaChaîne, MonTableau, rangSuivant, SansCasse)
FIN
Syntaxe

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

<Résultat> = PositionOccurrence(<Chaîne initiale> , <Chaîne à rechercher> , <Rang de l'occurrence recherchée> [, <Options de recherche>])
<Résultat> : Entier
Si <Chaîne à rechercher> est une chaîne de caractères, position du premier caractère de l'occurrence recherchée dans la chaîne initiale ou 0 si la chaîne recherchée n'a pas été trouvée.
Si <Chaîne à rechercher> est un tableau de chaînes de caractères, position du premier caractère de la première chaîne trouvée parmi le tableau de chaînes ou 0 si aucune chaîne du tableau n'a été trouvée.
<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 ou Tableau de chaînes de caractères
Ce paramètre peut correspondre à :
  • La chaîne de caractères à rechercher dans la chaîne initiale.
  • Un tableau de chaînes à rechercher dans la chaîne initiale.
<Rang de l'occurrence recherchée> : Entier
Numéro de l'occurrence de la <Chaîne à rechercher>. <Résultat> contiendra la position de cette occurrence.
Si ce paramètre est inférieur à 1, <Résultat> vaut 0.
Si ce paramètre est supérieur au nombre de caractères de la <Chaîne initiale>, <Résultat> est égal à 0.
<Options de recherche> : Constante optionnelle
Indique le sens du parcours et les options de la recherche :
DepuisDébut
(Valeur par défaut)
Recherche effectuée du premier caractère de la chaîne vers le dernier
DepuisFinRecherche effectuée du dernier caractère de la chaîne vers le premier
MotCompletRecherche un mot complet (entouré par des caractères de ponctuation ou des espaces)
SansCasseRecherche sans tenir compte de la casse (différences majuscules / minuscules) ou des accents

Parcourir les positions d'une sous-chaîne dans une chaîne de caractères Masquer les détails

<Résultat> = PositionOccurrence(<Chaîne initiale> , <Chaîne à rechercher> , <Options de parcours> [, <Options de recherche>])
<Résultat> : Entier
Si <Chaîne à rechercher> est une chaîne de caractères, position du premier caractère de l'occurrence recherchée suivante ou précédente (selon le sens du parcours) dans la chaîne initiale ou 0 à la fin du parcours.
Si <Chaîne à rechercher> est un tableau de chaînes de caractères, position du premier caractère de l'occurrence suivante ou précédente (selon le sens de parcours) parmi le tableau de chaînes ou 0 à la fin du parcours.
<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 ou Tableau de chaînes de caractères
Ce paramètre peut correspondre à :
  • La chaîne de caractères à rechercher dans la chaîne initiale.
  • Un tableau de chaînes à rechercher dans la chaîne initiale.
<Options de parcours> : Constante de type Entier
Sens de parcours :
rangDernierDébute un parcours des sous-chaînes séparées par la <Chaîne à rechercher> spécifiée en partant de la fin de la chaîne.
rangPrécédentContinue un parcours amorcé par la constante rangDernier
rangPremierDébute un parcours des sous-chaînes séparées par la <Chaîne à rechercher> spécifiée en partant du début de la chaîne.
rangSuivantContinue un parcours amorcé par la constante rangPremier
<Options de recherche> : Constante optionnelle
Indique le sens du parcours et les options de la recherche :
DepuisDébut
(Valeur par défaut)
Recherche effectuée du premier caractère de la chaîne vers le dernier
DepuisFinRecherche effectuée du dernier caractère de la chaîne vers le premier
MotCompletRecherche un mot complet (entouré par des caractères de ponctuation ou des espaces)
SansCasseRecherche sans tenir compte de la casse (différences majuscules / minuscules)
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 ne par tenir compte de la casse, utilisez la constante SansCasse.

Gestion des ambiguïtés

Lorsque les chaînes à rechercher sont des sous-chaînes d'autres chaînes présentes dans le tableau, ce sont toujours les chaînes trouvées les plus longues qui sont prises en compte.
Exemple : Si le tableau de chaînes ["bon", "bonjour", "bonsoir"] doit être recherché dans "Bien le bonjour mon bon monsieur", la première occurrence trouvée sera "bonjour" (et non pas "bon").
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppAndroidWidget AndroidJavaCode Utilisateur (MCU)PHPAjax

Fonction PositionOccurrence et UNICODE

Les paramètres <Chaîne initiale> et <Chaîne à rechercher> peuvent correspondre tous les deux :
  • soit à des chaînes ANSI.
  • soit à des chaînes UNICODE.
  • soit à des buffers.
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.
Composante : wd300vm.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