PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Récupérer la liste des variable d'une procédure
Récupérer la liste des variable d'une procédure
Débuté par AZIZ AIT ZAGHAR, 26 mar. 2025 08:16 - 6 réponses
Membre enregistré
27 messages
Posté le 26 mars 2025 - 08:16
Bonjour,

Est-il possible de récupérer la liste des variables d'une procédure ?

J'ai tenté de le faire via une description de procédure, je pensais y trouver un tableau de variable mais finalement non.

tab_Nom_procédure est un tableau = ChaîneDécoupe(dbgInfo(dbgNomCourtElément,dbgTraitementEnCours),".")
su_Nom_procédure est une chaîne = tab_Nom_procédure[2]
av_Def est une Definition = RécupèreDéfinition(objet)
av_pro_Dec est une Description de Procedure = av_Def.Procédure[su_Nom_procédure]


Est-ce que quelqu'un à une piste voir une solution ?

Par avance merci.



Membre enregistré
2 173 messages
Posté le 26 mars 2025 - 08:34
Bonjour Aziz,

Voici la réponse de Copilot à la question : "WinDev énumérer des variables d'une procédure"
// Déclaration d'une procédure avec quelques variables locales
Procedure MaProcedure()
LOCAL i est un entier
LOCAL sTexte est une chaîne
LOCAL dDate est une date

// Enumération des variables locales
EnumèreVariable("MaProcedure", EnumereVariableCallback)
FIN

// Fonction de rappel pour traiter chaque variable énumérée
Procedure EnumereVariableCallback(NomVariable est une chaîne, TypeVariable est une chaîne)
Trace("Nom de la variable : " + NomVariable + ", Type de la variable : " + TypeVariable)
FIN

J'espère que cela te permettra d'avancer.

--
Bon dev,
Jean-Pierre
Membre enregistré
2 173 messages
Posté le 26 mars 2025 - 08:39
Rebonjour Aziz,

Et voici la réponse ChatGPT :
Dans WinDev, pour énumérer les variables d'une procédure, il n'existe pas de fonction intégrée permettant d'obtenir directement la liste des variables déclarées dans une procédure. Cependant, voici quelques approches possibles :

1️⃣ Utiliser l’analyseur de code (WDTool)
WinDev propose un outil d’analyse statique qui peut analyser le code source et extraire les variables déclarées.

2️⃣ Lister les variables globales et locales
Bien que WinDev ne fournisse pas une fonction directe pour obtenir toutes les variables locales d'une procédure, vous pouvez :
- Afficher les variables globales via la fenêtre de débogage.
- Utiliser DébogueurAffiche() pour afficher des valeurs de variables.

3️⃣ Utiliser une structure de contrôle personnalisée
Une méthode manuelle consiste à lister les variables déclarées dans une procédure avec un tableau associatif ou une structure :
Procedure MaProcedure()
// Déclaration des variables
sNom est une chaîne = "WinDev"
nAge est un entier = 30
bActif est un booléen = Vrai

// Stockage des variables dans un tableau associatif
TableauVar est un tableau associatif de chaîne
TableauVar["sNom"] = sNom
TableauVar["nAge"] = nAge
TableauVar["bActif"] = bActif

// Affichage des variables
POUR TOUTE C sCle DANS TableauVar
Info(sCle + " = " + TableauVar[sCle])
FIN
FIN

Cette approche permet d’avoir un aperçu des variables utilisées dans la procédure.

Si tu cherches à analyser automatiquement le code source pour extraire les variables, il faudrait passer par un script externe ou utiliser les outils d’analyse de WinDev.
--------------------------------
Voila des pistes intéressantes 8)

--
Bon dev,
Jean-Pierre
Membre enregistré
58 messages
Posté le 26 mars 2025 - 09:11
Bonjour,

Le mot réservé MesParamètres doit répondre à votre demande mieux qu'une IA générative !
https://doc.pcsoft.fr/fr-FR/?1514080&name=Parametre_Procedure_param_variable


--
A+
Dev-OC
Membre enregistré
27 messages
Posté le 26 mars 2025 - 10:13
DEV-OC a écrit :
Bonjour,

Le mot réservé MesParamètres doit répondre à votre demande mieux qu'une IA générative !
https://doc.pcsoft.fr/fr-FR/?1514080&name=Parametre_Procedure_param_variable


--
A+
Dev-OC


Bonjour DEV-OC,

Merci pour la piste, mais malheureusement, cela ne marche que pour les variable passées en paramètres et non les variables local de la procédure.

Cordialement.
Membre enregistré
27 messages
Posté le 26 mars 2025 - 10:39
Bonjour Jean-pierre,

Merci pour la réponse mais j'ai bien peur de ne pas comprendre le code et ce qu'il fait.

Il y a EnumèreVariable("MaProcedure", EnumereVariableCallback), mais qu'est-ce ?

- Une fonction WL, visiblement non
- Il y a un "FIN" donc une procédure interne ? je n'ai pas l'impression.

Il doit manquer des choses je penses, non ?

Cordialement.
Membre enregistré
2 173 messages
Posté le 26 mars 2025 - 13:32
Bravo pour la réponse " MesParamètres" :merci:

Je l'avais "sur le bout de la langue" mais, du coup, j'ai testé l'IA pour voir et, surtout, donner des pistes !
Très heureux de voir que l'homme a (encore) surpassé l'IA :D

--
Bon dev,
Jean-Pierre