DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des chaînes
  • Remarque sur la syntaxe Parcours des sous-chaînes déterminées en fonction d'un séparateur
  • Fonction ExtraitChaîne 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
Permet de :
  • extraire une sous-chaîne d'une chaîne de caractères en fonction d'un séparateur de chaîne donné.
  • effectuer un parcours de sous-chaînes dans une chaîne de caractères en fonction d'un séparateur de chaîne donné.
Remarques :
  • Le parcours de sous-chaînes est plus rapide que l'extraction de sous-chaînes.
  • Il est possible d'utiliser un tableau de séparateurs. Il est ainsi possible d'utiliser plusieurs séparateurs différents simultanément.
Quelques exemples d'utilisation :
  • extraire une donnée lue dans un fichier externe,
  • extraire les informations retournées par la fonction HListeFichier ou la fonction HListeClé,
  • extraire une donnée d'une liste comportant des données différentes sur une même ligne.
Exemple
Pays est une chaîne = "France, Italie, Allemagne, Espagne"
ExtraitChaîne(Pays, 1, ", ")   // Renvoie "France"
ExtraitChaîne(Pays, 2, ", ")   // Renvoie "Italie"
ExtraitChaîne(Pays, 3, ", ")   // Renvoie "Allemagne"
ExtraitChaîne(Pays, 4, ", ")   // Renvoie "Espagne"
ExtraitChaîne(Pays, 5, ", ")   // Renvoie EOT
MaChaîne est une chaîne = "Fraise, Framboise, Chocolat et Banane"
ExtraitChaîne(MaChaîne, 1, [", " , "," , " et "]) // Renvoie "Fraise"
ExtraitChaîne(MaChaîne, 2, [", " , "," , " et "]) // Renvoie "Framboise"
ExtraitChaîne(MaChaîne, 3, [", " , "," , " et "]) // Renvoie "Chocolat"
ExtraitChaîne(MaChaîne, 4, [", " , "," , " et "]) // Renvoie "Banane"
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppAndroidWidget AndroidJavaCode Utilisateur (MCU)PHPAjaxProcédures stockées
// Parcours de toutes les sous-chaînes
Pays est une chaîne = "France, Italie, Allemagne, Espagne"
SousChaîne est une chaîne = ExtraitChaîne(Pays, rangPremier, ", ")
TANTQUE SousChaîne <> EOT
	Trace(SousChaîne) // Renvoie "France", "Italie", "Allemagne", "Espagne"
	SousChaîne = ExtraitChaîne(Pays, rangSuivant, ", ")
FIN
WINDEVWEBDEV - Code ServeurEtats et RequêtesUniversal Windows 10 AppAndroidWidget AndroidJavaCode Utilisateur (MCU)Procédures stockées
// Parcours de toutes les sous-chaînes
// Les séparateurs sont présents dans un tableau
sChaîne est une chaîne = "Fraise, Framboise<BR>Citron<BR>Chocolat et Banane"
sRésultat est une chaîne = ExtraitChaîne(sChaîne, rangPremier, [", " , " et ", "<BR>"])
TANTQUE sRésultat <> EOT
	Trace(sRésultat)
	sRésultat = ExtraitChaîne(sChaîne, rangSuivant, [", " , " et ", "<BR>"])
FIN
Syntaxe

Extraction d'une sous-chaîne en fonction d'un séparateur de chaîne Masquer les détails

<Résultat> = ExtraitChaîne(<Chaîne initiale> , <Rang> [, <Séparateur> [, <Sens de parcours>]])
<Résultat> : Chaîne de caractères
Correspond à :
  • La sous-chaîne comprise entre le séparateur de rang <Rang> - 1 et le séparateur de rang <Rang> si <Sens de parcours> n'est pas précisé ou est égal à DepuisDébut.
  • La sous-chaîne comprise entre le séparateur de rang <Rang> - 1 et le séparateur de rang <Rang> à partir de la fin de la chaîne si <Sens de parcours> correspond à DepuisFin.
  • La <Chaîne initiale> en totalité si la <Chaîne initiale> ne contient pas de <Séparateur> et si <Rang> est égal à 1.
  • La constante EOT si <Rang> est plus grand que le nombre de séparateurs contenus dans la chaîne.
<Chaîne initiale> : Chaîne de caractères
Chaîne de caractères (taille maximale 2 Go) contenant la chaîne à extraire.
<Rang> : Entier
Numéro d'ordre de la sous-chaîne à extraire. Par exemple, si le séparateur est TAB et si <Rang> est égal à 2, la sous-chaîne extraite sera comprise entre le premier et le second TAB.
<Séparateur> : Chaîne de caractères optionnelle ou Tableau de chaînes optionnel
Ce paramètre peut correspondre à :
  • La chaîne permettant de délimiter les sous-chaînes. Cette chaîne n'est pas incluse dans le résultat. Ce séparateur est sensible à la casse.
  • Un tableau de chaînes. Les différentes chaînes présentes dans le tableau permettent de délimiter les sous-chaînes. Les séparateurs ne sont pas inclus dans le résultat. Ces séparateurs sont sensibles à la casse.
Si ce paramètre n'est pas précisé, le séparateur par défaut est TAB.
<Sens de parcours> : Constante optionnelle
Sens du parcours 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.
WINDEVWEBDEV - Code ServeurWEBDEV - Code NavigateurEtats et RequêtesUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadApple WatchJavaCode Utilisateur (MCU)PHPAjaxProcédures stockées

Parcours des sous-chaînes déterminées en fonction d'un séparateur Masquer les détails

<Résultat> = ExtraitChaîne(<Chaîne initiale> , <Options de parcours> [, <Séparateur>])
<Résultat> : Chaîne de caractères
Correspond à :
  • la sous-chaîne suivante ou précédente selon le parcours choisi. <Résultat> ne contient pas le séparateur.
  • la constante EOT en fin de parcours.
<Chaîne initiale> : Chaîne de caractères
Chaîne de caractères (taille maximale 2 Go) contenant la chaîne à extraire.
<Options de parcours> : Constante de type Entier
Sens du parcours de la recherche :
rangDernierDébute un parcours des sous-chaînes séparées par le séparateur spécifié 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 le séparateur spécifié en partant du début de la chaîne.
rangSuivantContinue un parcours amorcé par la constante rangPremier
<Séparateur> : Chaîne de caractères optionnelle ou Tableau de chaînes optionnel
Ce paramètre peut correspondre à :
  • La chaîne permettant de délimiter les sous-chaînes. Cette chaîne n'est pas incluse dans le résultat. Ce séparateur est sensible à la casse.
  • Un tableau de chaînes. Les différentes chaînes présentes dans le tableau permettent de délimiter les sous-chaînes. Les séparateurs ne sont pas inclus dans le résultat. Ces séparateurs sont sensibles à la casse.
Si ce paramètre n'est pas précisé, le séparateur par défaut est TAB.
Remarques

Remarque sur la syntaxe Parcours des sous-chaînes déterminées en fonction d'un séparateur

  • Ce type de parcours fonctionne uniquement sur des chaînes constantes. Il faut donc forcément utiliser un élément du projet (variable, champ, rubrique, ...) comme chaîne initiale.
  • Lorsqu'un parcours est amorcé avec les constantes rangPremier ou rangDernier, les informations de parcours sont conservées en mémoire tant que les sous-chaînes extraites n'ont pas toutes été parcourues. Il est donc conseillé d'utiliser ce type de parcours uniquement lorsque la totalité des sous-chaînes doit être traitée.

Fonction ExtraitChaîne et UNICODE

Les paramètres <Chaîne initiale> et <Séparateur> 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.
Liste des exemples associés :
Les fonctions standards sur les chaînes Exemples unitaires (WINDEV) : Les fonctions standards sur les chaînes
[ + ] Utilisation des principales fonctions de manipulation des chaînes de caractères :
- Position et PositionOccurrence
- Remplace
- ChaîneConstruit
- Gauche, Droite, Milieu
- ExtraitChaîne
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