- Remarque sur la syntaxe Parcours des sous-chaînes déterminées en fonction d'un séparateur
- Fonction ExtraitChaîne et UNICODE
ExtraitChaîne (Fonction) En anglais : ExtractString 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.
Pays est une chaîne = "France, Italie, Allemagne, Espagne"
ExtraitChaîne(Pays, 1, ", ")
ExtraitChaîne(Pays, 2, ", ")
ExtraitChaîne(Pays, 3, ", ")
ExtraitChaîne(Pays, 4, ", ")
ExtraitChaîne(Pays, 5, ", ")
MaChaîne est une chaîne = "Fraise, Framboise, Chocolat et Banane"
ExtraitChaîne(MaChaîne, 1, [", " , "," , " et "])
ExtraitChaîne(MaChaîne, 2, [", " , "," , " et "])
ExtraitChaîne(MaChaîne, 3, [", " , "," , " et "])
ExtraitChaîne(MaChaîne, 4, [", " , "," , " et "])
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. | DepuisFin | Recherche effectuée du dernier caractère de la chaîne vers le premier. |
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.
Rappel : Les paramètres linguistiques utilisés sont définis lors de l'appel de la fonction ChangeAlphabet.
Liste des exemples associés :
|
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
|
Documentation également disponible pour…
|
|
|