PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Remarque sur la syntaxe Parcours des sous-chaînes déterminées en fonction d'un séparateur
  • Fonction ExtraitChaîne et UNICODE
Produits
WINDEVWEBDEV - Code ServeurWEBDEV - Code NavigateurWINDEV MobileEtats et Requêtes
Plateformes
WindowsLinuxWindows MobileUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadApple Watch
Langages
JavaPHPAjaxCode Utilisateur (MCU)Langage Externe
Bases de données
HFSQLHFSQL Client/ServeurProcédures stockéesOLE DBODBCAccès Natifs
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.
Versions 15 et supérieures
WINDEV MobileAndroid Cette fonction est désormais disponible pour les applications Android.
Nouveauté 15
WINDEV MobileAndroid Cette fonction est désormais disponible pour les applications Android.
WINDEV MobileAndroid Cette fonction est désormais disponible pour les applications Android.
Versions 16 et supérieures
WINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Nouveauté 16
WINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
WINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible pour les applications Windows Phone.
Versions 17 et supérieures
WINDEV MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
WINDEV MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
WINDEV MobileiPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Versions 18 et supérieures
WINDEV MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Nouveauté 18
WINDEV MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
WINDEV MobileWidget Android Cette fonction est désormais disponible en mode Widget Android.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Windows Store apps.
Versions 21 et supérieures
WINDEV MobileApple Watch Cette fonction est désormais disponible en mode Apple Watch.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
WINDEV MobileApple Watch Cette fonction est désormais disponible en mode Apple Watch.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
WINDEV MobileApple Watch Cette fonction est désormais disponible en mode Apple Watch.
WINDEVWINDEV MobileUniversal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
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 ServeurWINDEV MobileEtats et RequêtesWindows MobileUniversal Windows 10 AppAndroidWidget AndroidJavaPHPAjaxCode Utilisateur (MCU)Procé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 ServeurWINDEV MobileEtats et RequêtesWindows MobileUniversal 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 (avec guillemets)
Chaîne de caractères (taille maximale 2 Go) contenant la chaîne à extraire.
<Rang> : Entier
Numéro d'ordre du séparateur. Par exemple, si le séparateur est TAB et si <Rang> est égal à 2, la chaîne extraite sera comprise entre le premier et le second TAB.
<Séparateur> : Chaîne de caractères (avec guillemets) 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.
Versions 16 et supérieures
PHP Il est désormais possible d'utiliser un tableau de chaînes.
Nouveauté 16
PHP Il est désormais possible d'utiliser un tableau de chaînes.
PHP Il est désormais possible d'utiliser un tableau de chaînes.
<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 NavigateurWINDEV MobileEtats et RequêtesWindows MobileUniversal Windows 10 AppAndroidWidget AndroidiPhone/iPadApple WatchJavaPHPAjaxCode Utilisateur (MCU)Procé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 (avec guillemets)
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 (avec guillemets) 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.
Versions 16 et supérieures
PHP Il est désormais possible d'utiliser un tableau de chaînes.
Nouveauté 16
PHP Il est désormais possible d'utiliser un tableau de chaînes.
PHP Il est désormais possible d'utiliser un tableau de chaînes.
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,
  • sinon, 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,
  • 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 (Windows CE) :
  • 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,
  • sinon l'opération est réalisée en Unicode.
Remarque : Si le résultat sur une chaîne ANSI est affecté à une chaîne UNICODE (et inversement), la conversion sera implicitement réalisée.
Pour plus de détails, consultez Gestion de l'UNICODE.
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
Composantes
WINDEVWEBDEV - Code ServeurEtats et Requêtes wd220vm.dll
Windows Mobile wp220vm.dll
WEBDEV - Code Navigateur WDJS.DLL
Java wd220java.jar
Linux wd220vm.so
Android wd220android.jar
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire