DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Instructions structurées
  • Syntaxe 1 : Parcours des éléments du tableau
  • Syntaxe 2 : Parcours des valeurs des éléments du tableau
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
L'instruction POUR TOUT permet d'effectuer différents types de parcours de tableaux associatifs :
  • Parcours des éléments du tableau associatif.
  • Parcours des valeurs des éléments du tableau associatif.
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.
Exemple
// Déclaration d'un tableau associatif d'entiers
// Tableau indexé sur des chaînes et sans doublon
taIDParClient est un tableau associatif d'entiers
taIDParClient["A"] = 55 // Ajout de l'identifiant du client "A"
taIDParClient["B"] = 321 // Ajout de l'identifiant du client "B"
taIDParClient["A"] = 56 // Modification de l'identifiant du client "A"
// Parcours de tous les identifiants (syntaxe 1)
// 56
// 321
POUR TOUT nIdentifiant DE taIDParClient
Trace(nIdentifiant)
FIN
// Déclaration d'un tableau associatif d'entiers
// Ce tableau est indexé sur des chaînes avec doublons
// Ne tient pas compte de la casse ni des accents
taIDParClient est un tableau associatif (AvecDoublon + ccSansCasse + ccSansAccent) d'entiers
taIDParClient["E"] = 55  // ajout de l'identifiant du client "E"
taIDParClient["B"] = 321 // ajout de l'identifiant du client "B"
taIDParClient["e"] = 8   // ajout de l'identifiant du client "e"
taIDParClient["é"] = 127 // ajout de l'identifiant du client "é"
// Parcours de tous les identifiants des clients "E" (Syntaxe 2)
// 55
// 8
// 127
POUR TOUT nIdentifiant DE taIDParClient = "E"
Trace(nIdentifiant)
FIN
Syntaxe

Parcours des éléments du tableau Masquer les détails

POUR TOUT [ELEMENT] <Variable> [, <Clé> [, <Compteur>]] DE <Tableau> [AVEC <Condition>] [<Sens>]
    ...
FIN
<POUR TOUT [ELEMENT]> :
Signale le début du bloc d'instructions. Le mot-clé ELEMENT est optionnel.
<Variable> :
Variable exactement du même type que les éléments du tableau. Pour des tableaux de classe, la variable doit être de type Classe dynamique. Il n'est pas nécessaire de déclarer cette variable.
Note : Cette variable est une référence vers la valeur du tableau. Une modification de cette variable dans le POUR TOUT modifiera également la valeur dans le tableau associatif.
<Clé> :
Clé de l'élément parcouru. 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.
<Tableau> :
Tableau à parcourir.
<Condition> :
WINDEVWEBDEV - Code ServeuriPhone/iPadWidget IOSApple WatchMac Catalyst Condition à indiquer pour filtrer le parcours. Seuls les éléments du tableau correspondant au filtre seront parcourus.
<Sens> :
Indicateur optionnel du sens de parcours.
DepuisDébut
(valeur par défaut)
Parcours le tableau dans l'ordre des ajouts dans le tableau.
DepuisFinParcours le tableau dans l'ordre inverse des ajouts dans le tableau.

Parcours des valeurs des éléments <Clé> du tableau Masquer les détails

POUR TOUT [ELEMENT] <Variable> DE <Tableau> = <Clé> [AVEC <Condition>] [<Sens>]
    ...
FIN
<POUR TOUT ELEMENT> :
Signale le début du bloc d'instructions. Le mot-clé ELEMENT est optionnel.
<Variable> :
Variable exactement du même type que les éléments du tableau. Pour des tableaux de classe, la variable doit être de type Classe dynamique. Il n'est pas nécessaire de déclarer cette variable.
Note : Cette variable est une référence vers la valeur du tableau. Une modification de cette variable dans le POUR TOUT modifiera également la valeur dans le tableau associatif.
<Tableau> :
Tableau à parcourir.
<Clé> :
Valeur de la clé pour laquelle les éléments du tableau doivent être parcourus. Pour un tableau associatif sans doublons, 0 ou 1 élément seront parcourus. Pour un tableau associatif avec doublons, 0 ou N éléments seront parcourus.
<Condition> :
WINDEVWEBDEV - Code ServeuriPhone/iPadWidget IOSApple WatchMac Catalyst Condition à indiquer pour filtrer le parcours. Seuls les éléments du tableau correspondant au filtre seront parcourus.
<Sens> :
Indicateur optionnel du sens de parcours.
DepuisDébut
(valeur par défaut)
Parcours le tableau dans l'ordre des ajouts dans le tableau.
DepuisFinParcours le tableau dans l'ordre inverse des ajouts dans le tableau.
Remarques

Syntaxe 1 : Parcours des éléments du tableau

A chaque itération, la variable <Variable> fait directement référence à l'élément courant dans le tableau. Si la valeur de <Variable> est modifiée, l'élément courant dans le tableau est modifié.
En sortie de boucle (Fin normale ou instruction SORTIR), la valeur de <Variable> est affectée avec celle du dernier élément parcouru, mais <Variable> ne fait plus directement référence à l'élément dans le tableau.
Exemple :
// Déclaration d'un tableau associatif d'entiers
// Tableau indexé sur des chaînes et sans doublon
taIDParClient est un tableau associatif d'entiers
taIDParClient["A"] = 55 // Ajout de l'identifiant du client "A"
taIDParClient["B"] = 321 // Ajout de l'identifiant du client "B"
taIDParClient["A"] = 56 // Modification de l'identifiant du client "A"
// Parcours de tous les identifiants
// 56
// 321
POUR TOUT nIdentifiant DE taIDParClient
Trace(nIdentifiant)
FIN

Syntaxe 2 : Parcours des valeurs des éléments <Clé> du tableau

Cette syntaxe parcourt tous les élément du tableau ayant la valeur <Clé> spécifiée. A chaque itération, la variable <Variable> fait directement référence à l'élément courant dans le tableau. Si la valeur de <Variable> est modifiée, l'élément courant dans le tableau est modifié.
Cette syntaxe est utile dans le cas des parcours de tableaux associatifs avec doublons. En effet, dans un tableau associatif sans doublon, le nombre d'éléments parcourus peut être 0 ou 1. Dans un tableau associatif avec doublons, le nombre d'éléments parcourus peut être 0 ou N.
Les éléments du tableaux sont parcourus dans l'ordre des ajouts (pas d'option de sens de parcours).
En sortie de boucle (Fin normale ou instruction SORTIR), la valeur de <Variable> est affectée avec celle du dernier élément parcouru, mais <Variable> ne fait plus directement référence à l'élément dans le tableau.
Exemple :
// Déclaration d'un tableau associatif d'entiers
// Ce tableau est indexé sur des chaînes avec doublons
// Ne tient pas compte de la casse ni des accents
taIDParClient est un tableau associatif (AvecDoublon + ccSansCasse + ccSansAccent) d'entiers
taIDParClient["E"] = 55  // ajout de l'identifiant du client "E"
taIDParClient["B"] = 321 // ajout de l'identifiant du client "B"
taIDParClient["e"] = 8   // ajout de l'identifiant du client "e"
taIDParClient["é"] = 127 // ajout de l'identifiant du client "é"
// Parcours de tous les identifiants des clients "E"
// 55
// 8
// 127
POUR TOUT nIdentifiant DE taIDParClient = "E"
Trace(nIdentifiant)
FIN
Version minimum requise
  • Version 11
Documentation également disponible pour…
Commentaires
<Variable>
Note : Cette variable est une référence vers la valeur du tableau. Une modification de cette variable dans le POUR TOUT modifiera également la valeur dans le tableau associatif.

tabCompteurs est tableau associatif d'entiers

tabCompteurs[ "MaClé" ] = 2
POUR TOUT Compteur DE tabCompteurs
Compteur ++
FIN

Trace( tabCompteurs[ "MaClé" ] ) => 3

... Plus rapide que :
POUR TOUT Compteur , Klé DE tabCompteurs
tabIndiceFam[ Klé ] ++
FIN
AntonioDev
23 sep. 2022
Ajouter un lien vers la page "Tableau associatif (Type de variable)"
Pour améliorer la "navigation" dans la documentation, merci d'enrichir cette page avec un lien vers la page :

» Tableau associatif (Type de variable)

https://doc.pcsoft.fr/fr-FR/?1514058

:-)
=JBO=
20 sep. 2019
Supprimer un élément précis dans un tableau associatif avec doublons (parcours et ElémentCourant)
Pour prolonger l'exemple du tableau associatif avec doublons taIDParClient où :
• la clé est une chaîne pour le nom du client,
• la valeur est un entier pour l'identifiant du client.

Voici le code pour supprimer du tableau associatif les éléments tels que :
• la clé est "E",
• l'identifiant est 127

POUR TOUT nIdentifiant DE taIDParClient = "E" AVEC nIdentifiant = 127
TableauSupprime(taIDParClient,ElémentCourant)
FIN

A ma connaissance, il n'y a pas d'autre syntaxe / code possible.

:-)
=JBO=
20 sep. 2019
syntaxe utile
S'il est nécessaire d'utiliser une variable pour faire un parcours du tableau associatif, la syntaxe suivante fonctionne :

(reprise de l'exemple ci-dessus, puis :)
sLeClient est une chaine

sLeClient = "E" // ou tout autre valeur de client, à déterminer

POUR TOUT nIdentifiant DE taIDParClient[sLeClient]
Trace(nIdentifiant)
FIN
CV
05 fév. 2018

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale