Page 1 sur 1

[..] Question sur les variables. Définition et portée

Posté : jeu. 14 oct. 2010 19:42
par TommyDDR
Humm, ce post tombe à pique.

(je ne sais pas si je dois exposer mon problème ici mais je ne vois pas d'autre endroits plus approprié)

Voila, je veux créer un UDF (contenant des variables) et l'inclure dans mon fichier principale sans que le fichier principal puisse accèder aux variables de l UDF. J'ai donc utilisé "Dim"
Dim = Création d'une variable (re-définissable) dont la valeur ce retrouve uniquement dans le script en cours (Cette variable ne peut être récupérée dans un Include, ou par un Include).
Malheureusement, je peux afficher le contenu des variables de l UDF avec une msgbox à partir de mon fichier principal.

Une solution ?
► Afficher le texte1.au3
► Afficher le texte2.au3
Merci.

Re: [Tuto] Les variables. Définition et portée.

Posté : jeu. 14 oct. 2010 20:05
par Jerome
Humm ????
C'est marquer pourtant xD ????


edit : autant pour moi, j'ai crut lire que tu ne pouvais pas l'afficher ...

Re: [Tuto] Les variables. Définition et portée.

Posté : jeu. 14 oct. 2010 20:19
par TommyDDR
... au lieu de mettre des "xD" as tu au moins essayé ce qui est marqué (ce que j'ai mis en code) ? -_-' car (chez moi) ca ne marche pas, la variable s'affiche et donc nous avons accès à une variable déclarée en "Dim" dans un autre fichier.

Si les futures réponses pouvaient ne pas contenir de remarque de ce genre mais plutôt un exemple de code fonctionnel, j'en serai reconnaissant.

Merci.

Re: [Tuto] Les variables. Définition et portée.

Posté : jeu. 14 oct. 2010 21:22
par SrBelial
bon alors en vrai il se passe quelque chose de très simple ....

En fait autoit fait des includes "naïfs" : il voit un include => il recopie tout le contenu du fichier à inclure dans le script ... (il fait juste gaffe dans le cas des include-once à ne pas inclure plusieurs fois le même fichier)

En conséquence, n'importe quelle variable globale définie dans le fichier inclus est considérée exactement de la même manière que si elle était définie dans le fichier complet ... je donne un exemple :

fichier a.au3

Code : Tout sélectionner

Dim $toto = "titi"
Global $tata = "tutu"
Local $tonton = "tete"
fichier b.au3

Code : Tout sélectionner

Dim $bobo = "bibi"
Global $baba = "bubu"
Local $bonbon = "bebe"
fichier c.au3

Code : Tout sélectionner

#include "a.au3"
#include "b.au3"

MsgBox(0, "", "Ceci est mon script principal")
=> lors de l'exécution ou de la compilation, autoit considère que le fichier c.au3 contient en réalité :

Code : Tout sélectionner

Dim $toto = "titi"
Global $tata = "tutu"
Local $tonton = "tete"
Dim $bobo = "bibi"
Global $baba = "bubu"
Local $bonbon = "bebe"

#include "a.au3"
#include "b.au3"

MsgBox(0, "", "Ceci est mon script principal")

vous saisissez ?

Re: [Tuto] Les variables. Définition et portée.

Posté : jeu. 14 oct. 2010 21:24
par TommyDDR
D'accord, c'est bien ce que je pensais, c'est à cause de la citation de Tlem que je me posai la question.

N'y a-t-il aucun moyen de faire ce que je veux ?

Re: [Tuto] Les variables. Définition et portée.

Posté : jeu. 14 oct. 2010 21:29
par SrBelial
hé bien de toute façon à partir du moment ou tu inclus ton script, tout son contenu devient accessible ...

alors si tu tiens à tout point à masquer les variables, je te conseille de les cacher ailleurs que dans ton script ...
je me suis encore jamais trouvé confronté à ce problème du coup je vois pas très bien quoi faire ... cherche un compromis

Re: [Tuto] Les variables. Définition et portée.

Posté : jeu. 14 oct. 2010 21:47
par TommyDDR
D'accord, merci de ton aide.

Re: [Tuto] Les variables. Définition et portée.

Posté : ven. 15 oct. 2010 19:07
par Tlem
TommyDDR a écrit :je ne sais pas si je dois le exposer mon problème ici mais je ne vois pas d'autre endroits plus approprié
Je confirme que ce n'est pas le bon endroit.

Le forum tutoriels est là pour présenter des exemples concrets mais pas pour les questions.
Pour les questions c'est la section Autoit v3.

Je déplacerais donc, cette partie dans le forum approprié.