|
|
|
|
|
- Remarque sur la syntaxe Parcours des sous-chaînes entre les séparateurs
- Fonction ExtraitChaîneEntre et UNICODE
ExtraitChaîneEntre (Fonction) En anglais : ExtractStringBetween Permet de : - extraire d'une chaîne de caractères une sous-chaîne entre deux séparateurs de chaînes donnés.
- effectuer un parcours de sous-chaînes entre deux séparateurs de chaîne donnés dans une chaîne de caractères.
Cette fonction permet par exemple d'extraire une donnée entre deux balises dans du HTML, du XML ou du JSON. Remarques : - Le parcours de sous-chaînes est plus rapide que l'extraction de sous-chaînes.
- Il est possible d'utiliser des tableaux de séparateurs. Il est ainsi possible d'utiliser plusieurs paires de séparateurs différents simultanément.
Pays est une chaîne = [ <pays>France</pays><pays>Italie</pays> <pays>Allemagne</pays><pays>Espagne</pays> ] ExtraitChaîneEntre(Pays, 1, "<pays>", "</pays>")  // Renvoie "France" ExtraitChaîneEntre(Pays, 2, "<pays>", "</pays>")  // Renvoie "Italie" ExtraitChaîneEntre(Pays, 3, "<pays>", "</pays>")  // Renvoie "Allemagne" ExtraitChaîneEntre(Pays, 4, "<pays>", "</pays>")  // Renvoie "Espagne" ExtraitChaîneEntre(Pays, 5, "<pays>", "</pays>")  // Renvoie EOT MaChaîne est une chaîne = [ <fruit rouge>Fraise</fruit rouge> <fruit rouge>Framboise</fruit rouge> <fruit exotique>Cacao</fruit exotique> <fruit exotique>Banane</fruit exotique> ] ExtraitChaîneEntre(MaChaîne, 1, ["<fruit rouge>" , "<fruit exotique>"], ... ["</fruit rouge>" , "</fruit exotique>"]) // Renvoie "Fraise" ExtraitChaîneEntre(MaChaîne, 2, ["<fruit rouge>" , "<fruit exotique>"], ...  ["</fruit rouge>" , "</fruit exotique>"]) // Renvoie "Framboise" ExtraitChaîneEntre(MaChaîne, 3, ["<fruit rouge>" , "<fruit exotique>"], ...  ["</fruit rouge>" , "</fruit exotique>"]) // Renvoie "Cacao" ExtraitChaîneEntre(MaChaîne, 4, ["<fruit rouge>" , "<fruit exotique>"], ...  ["</fruit rouge>" , "</fruit exotique>"]) // Renvoie "Banane" // Parcours de toutes les sous-chaînes Pays est une chaîne = [ <pays>France</pays><pays>Italie</pays> <pays>Allemagne</pays><pays>Espagne</pays> ] SousChaîne est une chaîne = ExtraitChaîneEntre(Pays, rangPremier, "<pays>", "</pays>") TANTQUE SousChaîne <> EOT Trace(SousChaîne) // Renvoie "France", "Italie", "Allemagne", "Espagne" SousChaîne = ExtraitChaîneEntre(Pays, rangSuivant, "<pays>", "</pays>") FIN // Parcours de toutes les sous-chaînes // Les séparateurs sont présents dans des tableaux sChaîne est une chaîne = [ <fruit rouge>Fraise</fruit rouge> <fruit rouge>Framboise</fruit rouge> <fruit exotique>Cacao</fruit exotique> <fruit exotique>Banane</fruit exotique> ] sRésultat est une chaîne = ExtraitChaîneEntre(sChaîne, rangPremier, ["<fruit rouge>" , ...  "<fruit exotique>"], ["</fruit rouge>" , "</fruit exotique>"]) TANTQUE sRésultat <> EOT Trace(sRésultat) sRésultat = ExtraitChaîneEntre(sChaîne, rangSuivant, ["<fruit rouge>" , "<fruit exotique>"], ...  ["</fruit rouge>" , "</fruit exotique>"]) FIN Syntaxe
Extraire une sous-chaîne d'une chaîne de caractères entre deux séparateurs de chaînes donnés Masquer les détails
<Résultat> = ExtraitChaîneEntre(<Chaîne initiale> , <Rang> , <Séparateur de début> [, <Séparateur de fin> [, <Options>]])
<Résultat> : Chaîne de caractères Correspond à :- La sous-chaîne comprise entre <Séparateur de début> de rang <Rang> et <Séparateur de fin> suivant si la constante DepuisFin n'est pas précisée.
- La sous-chaîne comprise entre <Séparateur de début> de rang <Rang> à partir de la fin de la chaîne et le séparateur de fin suivant si la constante DepuisFin est précisée.
- La constante EOT dans un des cas suivants :
- si <Rang> est plus grand que le nombre de séparateurs de début suivis d'un séparateur de fin contenus dans la chaîne,
- si tous les séparateurs sont des chaînes vides ("").
<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 du séparateur de début suivi d'un séparateur de fin. Remarque : un séparateur de début n'est pas pris en compte s'il n'y a pas un séparateur de fin entre lui et le séparateur de début précédent, sauf si les conditions suivantes sont réunies : - <Rang> vaut 1,
- l'option DepuisFin n'est pas précisée.
<Séparateur de début> : Chaîne de caractères ou Tableau de chaînes Ce paramètre peut correspondre à :- La chaîne permettant de délimiter le début des sous-chaînes. Cette chaîne n'est pas incluse dans le résultat.
- Un tableau de chaînes. Les différentes chaînes présentes dans le tableau permettent de délimiter le début des sous-chaînes. Les séparateurs ne sont pas inclus dans le résultat.
<Séparateur de fin> : Chaîne de caractères optionnelle ou Tableau de chaînes optionnel Ce paramètre peut correspondre à :- La chaîne permettant de délimiter la fin des sous-chaînes. Cette chaîne n'est pas incluse dans le résultat.
- 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.
Si ce paramètre n'est pas précisé, le séparateur de fin sera identique au <Séparateur de début>. <Options> : Constante optionnelle de type Entier Sens de parcours et caractéristiques 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. | MotComplet | Recherche un mot complet (entouré par des caractères de ponctuation ou des espaces). | SansCasse | Recherche sans tenir compte de la casse (différences majuscules / minuscules) ou des accents. |
Effectuer un parcours de sous-chaînes entre deux séparateurs de chaînes donnés dans une chaîne de caractères Masquer les détails
<Résultat> = ExtraitChaîneEntre(<Chaîne initiale> , <Options de parcours> , <Séparateur de début> [, <Séparateur de fin> [, <Options>]])
<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 de 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 : | | rangDernier | Débute un parcours des sous-chaînes séparées par les séparateurs spécifiés en partant de la fin de la chaîne. | rangPrécédent | Continue un parcours amorcé par la constante rangDernier | rangPremier | Débute un parcours des sous-chaînes séparées par les séparateurs spécifiés en partant du début de la chaîne. | rangSuivant | Continue un parcours amorcé par la constante rangPremier |
<Séparateur de début> : Chaîne de caractères ou Tableau de chaînes Ce paramètre peut correspondre à :- La chaîne permettant de délimiter le début des sous-chaînes. Cette chaîne n'est pas incluse dans le résultat.
- Un tableau de chaînes. Les différentes chaînes présentes dans le tableau permettent de délimiter le début des sous-chaînes. Les séparateurs ne sont pas inclus dans le résultat.
<Séparateur de fin> : Chaîne de caractères optionnelle ou Tableau de chaînes optionnel Ce paramètre peut correspondre à :- La chaîne permettant de délimiter la fin des sous-chaînes. Cette chaîne n'est pas incluse dans le résultat.
- 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.
Si ce paramètre n'est pas précisé, le séparateur de fin sera identique au <Séparateur de début>. <Options> : Constante optionnelle de type Entier Caractéristiques de la recherche : | | MotComplet | Recherche un mot complet (entouré par des caractères de ponctuation ou des espaces). | SansCasse | Recherche sans tenir compte de la casse (différences majuscules / minuscules) ou des accents. |
Remarques Remarque sur la syntaxe Parcours des sous-chaînes entre les séparateurs - 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îneEntre et UNICODE Les paramètres <Chaîne initiale>, <Séparateur de début> et <Séparateur de fin> peuvent correspondre : - 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.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|