|
|
|
|
|
- Syntaxe 1 : Parcours des sous-chaînes séparées par un séparateur
- Syntaxe 2 et 3 : Parcours des occurrences d'une chaîne dans une autre
- POUR TOUTE CHAÎNE, POUR TOUTE POSITION et Unicode
- Astuce : Comment récupérer le séparateur ?
- Astuce : Parcours d'une chaîne XML
Instruction POUR TOUT / POUR TOUS (parcours de chaînes) En anglais : FOR EACH / FOR ALL
L'instruction POUR TOUT permet d'effectuer différents types de parcours de chaînes : - Parcours des sous-chaînes séparées par un séparateur.
- Parcours des occurrences d'une chaîne dans une autre.
Remarque : Les instructions POUR TOUT, POUR TOUS, POUR CHAQUE sont acceptées. Dans cette documentation, seule l'instruction POUR TOUT est utilisée et peut être remplacée par POUR TOUS ou POUR CHAQUE. L'instruction POUR TOUT peut également être utilisée pour parcourir les objets DotNet qui implémentent l'interface IEnumerable.
ListeLibrairie est une chaîne = ListeDLL()
POUR TOUTE CHAÎNE UneLibrairie DE ListeLibrairie SÉPARÉE PAR RC
TableAjouteLigne(TABLE_Librairie, ExtraitChaîne(UneLibrairie, 1, TAB))
FIN
ProduitExport est une chaîne = fChargeTexte("C:\MesDocuments\Exports.TXT")
AnciennePosition est un entier
POUR TOUTE POSITION PositionActuelle DE ";" DANS ProduitExport
ListeAjoute(LISTE_Produit, ...
ProduitExport[[AnciennePosition + 1 À PositionActuelle - 1]]
AnciennePosition = PositionActuelle
FIN
POUR TOUTE CHAÎNE sc1, nPosition, nCompteur DE "A.B.C" SÉPARÉE PAR "."
Trace(sc1 + " - " + nPosition + " - " + nCompteur)
FIN
s est une chaîne = "je suis une phrase"+RC+"sur plusieurs lignes"
POUR TOUTE CHAÎNE s2 DE s SÉPARÉE PAR [" ",RC]
Trace(s2)
FIN
Syntaxe
Parcours des sous-chaînes séparées par un séparateur Masquer les détails
POUR TOUTE CHAÎNE <Sous-chaîne> [, <Position> [, <Compteur>]] DE <Chaîne initiale> [SEPAREEE PAR <Séparateur>] [<Sens>]
... FIN
<POUR TOUTE CHAÎNE> : Signale le début du bloc d'instructions. <Sous-Chaîne> : Variable de type chaîne contenant le texte de la sous-chaîne. Il n'est pas nécessaire de déclarer cette variable. <Position> : Variable de type entier contenant la position de la sous-chaîne dans la chaîne. Il n'est pas nécessaire de déclarer cette variable. <Compteur> : Variable de type entier contenant le nombre d'itérations. Il n'est pas nécessaire de déclarer cette variable. <Chaîne initiale> : Chaîne contenant le texte complet. Si cette chaîne est vide, le parcours des sous-chaînes n'est pas effectué. <Séparateur> : Chaîne optionnelle contenant le séparateur des sous-chaînes (TAB par défaut).Pour spécifier plusieurs séparateurs, il suffit d'utiliser la syntaxe : [<Séparateur1> , ..., <Séparateur N>] Par exemple : [TAB, RC] <Sens> : Indicateur optionnel du sens de parcours : | | DepuisDébut (valeur par défaut) | Parcours la chaîne du premier caractère au dernier. | DepuisFin | Parcours la chaîne du dernier caractère au premier. |
Parcours des occurrences d'une chaîne dans une autre chaîne Masquer les détails
POUR TOUTE POSITION <Position> DE <Recherche> DANS <Chaîne initiale> [<Sens>]
... FIN
<POUR TOUTE POSITION> : Signale le début du bloc d'instructions. <Position> : Variable de type Entier contenant la position en cours. Il n'est pas nécessaire de déclarer cette variable. <Recherche> : Chaîne recherchée. <Chaîne initiale> : Chaîne contenant le texte complet. <Sens> : Indicateur optionnel du sens de parcours : | | DepuisDébut (valeur par défaut) | Parcours la chaîne du premier caractère au dernier. | DepuisFin | Parcours la chaîne du dernier caractère au premier. |
Parcours des occurrences d'une chaîne dans une autre chaîne Masquer les détails
POUR TOUTE POSITION <Position> DE <Recherche> DANS <Chaîne initiale> AVEC <Options>
... FIN
<POUR TOUTE POSITION> : Signale le début du bloc d'instructions. <Position> : Variable de type Entier contenant la position en cours. Il n'est pas nécessaire de déclarer cette variable. <Recherche> : Chaîne recherchée. <Chaîne initiale> : Chaîne contenant le texte complet. <Options> : Indicateur des options sélectionnées (combinables) : | | DepuisDébut (valeur par défaut) | Parcours la chaîne du premier caractère au dernier. | DepuisFin | Parcours la chaîne du dernier caractère au premier. | MotComplet | Recherche sur le mot complet | SansCasse | Recherche sans tenir compte de la casse (Majuscules / minuscules) |
Remarques Syntaxe 1 : Parcours des sous-chaînes séparées par un séparateur Parcourt toutes les sous-chaînes de la chaîne <Chaîne initiale> séparées par le séparateur <Séparateur>. Si <Chaîne initiale> correspond à une chaîne vide, le parcours n'est pas effectué. A chaque itération : - la variable <Sous-chaîne> est renseignée avec la sous-chaîne en cours.
- la variable <Position> contient la position de la sous-chaîne dans la chaîne.
- la variable <Compteur> contient le nombre d'itérations effectuées.
Le comportement est indéterminé si la chaîne initiale ou le séparateur est modifié lors du parcours. Remarque : Si <Chaîne initiale> se termine par le séparateur, <Sous-Chaîne> renvoie une chaîne vide à la fin. Dans le cas contraire, <Sous-Chaîne> correspond au dernier élément extrait. Syntaxe 2 et 3 : Parcours des occurrences d'une chaîne dans une autre Parcourt toutes les positions de la sous-chaîne <Recherche> dans la chaîne <Chaîne initiale>. A chaque itération, la variable <Position> est renseignée avec la position de la sous-chaîne en cours. Le comportement est indéterminé si la chaîne initiale ou la chaîne recherchée est modifiée lors du parcours. POUR TOUTE CHAÎNE, POUR TOUTE POSITION et Unicode Les paramètres <Sous-chaîne>, <Chaîne initiale>, <Séparateur> et <Recherche> peuvent tous correspondre : - soit à des chaînes ANSI.
- soit à des chaînes Unicode.
Cependant, il n'est pas possible d'utiliser des chaînes ANSI et des chaînes Unicode dans la même syntaxe. Astuce : Comment récupérer le séparateur ? Pour récupérer le séparateur dans la boucle, il suffit d'utiliser la syntaxe suivante qui permet de connaître la position du séparateur. Pour connaître le séparateur, il suffit de récupérer le caractère suivant. Par exemple : POUR TOUTE CHAÎNE sChaineTemp, nPosition DE sChaineIN SÉPARÉE PAR [" ","-"]
sSeparateur = sChaineIN[[nPosition + Taille(sChaineTemp)]]
...
FIN
Astuce : Parcours d'une chaîne XML Pour parcourir un fichier XML, avant d'utiliser la syntaxe "POUR TOUT", exécutez la fonction XMLExécuteXPath.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|