PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Parcour de tableaux associatif
Parcour de tableaux associatif
Débuté par jbr, 23 nov. 2022 15:13 - 6 réponses
Posté le 23 novembre 2022 - 15:13
Bonjour,

je débute en WLangage / WinDev et je dois m'occuper d'un programme qui gère des licences. Je dois, pour simplifier le code, céer une boucle qui va parcourir le tableau et affecter ses valeurs à un objet "licence".

J'aimerais faire comme suit :





En gros, qu'est-ce que je dois entrer à la place des points d’interrogation pour avoir accès aux valeurs 1 et 2 de chaque item ?

Pour référence, voici ce que je ferais si je pouvais développer en C# :





Merci d'avance
Membre enregistré
371 messages
Posté le 23 novembre 2022 - 22:51
Bonsoir

2 possibilités :

1. tu peux passer par une structure et un tableau de structure, qui te permettra d'accéder à tes éléments via une boucle de lecture.

2. tu lis ton tableau par une boucle et des indices (lignes et colonnes) ou via des variables :

// Parcours les tailles des fichiers
sFichier est une chaîne
nTaille est un entier
POUR TOUT ÉLÉMENT nTaille,sFichier de taTailleFichier
Trace(ChaîneConstruit("%1 : %2", sFichier, nTaille))
FIN


Trace(tabMonTableau[1][1]) // Affiche "Janvier"
Trace(tabMonTableau[1][2]) // Affiche "300"
Membre enregistré
70 messages
Posté le 24 novembre 2022 - 10:54
Bonjour Jules,

Utilise l'aide qui est pas mal:

https://doc.pcsoft.fr/fr-FR/?1514058&name=tableau_associatif_type_variable

--
Qui ne sait rien, de rien ne doute...
Membre enregistré
287 messages
Posté le 24 novembre 2022 - 11:58
Utilise cette syntaxe pour parcourir
POUR TOUT Valeur, CléParcours de taStartUp

FIN


Vu ta déclaration
CléParcours = Gestion, Compta, etc...
Valeur : les chiffres

PS : Pas besoin de déclarer une variable (sItem) d'ailleurs si c'est juste pour un parcours

--
#DKR
Message modifié, 24 novembre 2022 - 11:59
Membre enregistré
491 messages
Posté le 24 novembre 2022 - 14:41
Bonjour voici un exemple complet de la déclaration au parcours et meme enregistrement au format json au cas où

vous pouvez coller le code dans un bouton et tester voyer juste le chemin pour le fichier de type json à la fin

//declarer la structure
st_StartUP est un structure
Idprogramme est un entier
Module est une chaîne
FIN

//declarer un tableau ayant pour structure st_StarUp
Tab_Licence est un tableau de st_StartUP

//code pour ajouter 2 enregistrement
x est un entier
x = TableauAjoute(Tab_Licence)
Tab_Licence[x].idprogramme = 1
Tab_Licence[x].Module = "Gestion"

x = TableauAjoute(Tab_Licence)
Tab_Licence[x].idprogramme = 2
Tab_Licence[x].Module = "Compta"


//Code pour parcourir le tableau
POUR TOUT ÉLÉMENT rec de Tab_Licence
Trace(rec.Idprogramme)
Trace(rec.Module)
FIN



//exemple pour sauvegarder le tableau au format json si besoin
bufRésultat est un Buffer
Sérialise(Tab_Licence, bufRésultat, psdJSON)
fSauveBuffer("d:\monfichier.json",bufRésultat)


//Vidage du tableau
TableauSupprimeTout(Tab_Licence)


//Chargement du tableau a partir du fichier json
bufRetour est un Buffer
bufRetour = fChargeBuffer("d:\monfichier.json")
Désérialise(Tab_Licence, bufRetour, psdJSON)

//parcour a nouveau du tableau
POUR TOUT ÉLÉMENT rec de Tab_Licence
Trace(rec.Idprogramme)
Trace(rec.Module)
FIN


cdlt

DG
Membre enregistré
1 message
Posté le 25 novembre 2022 - 14:14
Merci pour vos réponses ! J'ai pu résoudre le problème :)
Membre enregistré
287 messages
Posté le 25 novembre 2022 - 16:15
De rien :)

--
#DKR