|
|
|
|
|
- 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. // Récupère la liste des librairies chargées en mémoire ListeLibrairie est une chaîne = ListeDLL()  // Pour chaque librairie POUR TOUTE CHAÎNE UneLibrairie DE ListeLibrairie SÉPARÉE PAR RC // Ajoute la librairie dans la table TABLE_Librairie TableAjouteLigne(TABLE_Librairie, ExtraitChaîne(UneLibrairie, 1, TAB)) FIN // Le fichier "C:\MesDocuments\Exports.TXT" contient la liste // des produits exportés séparés par des ";" // Récupération de chaque produit ProduitExport est une chaîne = fChargeTexte("C:\MesDocuments\Exports.TXT") AnciennePosition est un entier  // Pour chaque produit POUR TOUTE POSITION PositionActuelle DE ";" DANS ProduitExport // Ajoute le produit dans la liste ListeProduit ListeAjoute(LISTE_Produit, ... ProduitExport[[AnciennePosition + 1 À PositionActuelle - 1]] // Mémorisation de la position AnciennePosition = PositionActuelle FIN POUR TOUTE CHAÎNE sc1, nPosition, nCompteur DE "A.B.C" SÉPARÉE PAR "." Trace(sc1 + " - " + nPosition + " - " + nCompteur) FIN // Renvoie // A - 1 - 1 // B - 3 - 2 // C - 5 - 3 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  // Renvoie // je // suis // une // phrase // sur // plusieurs // lignes 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…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|