Bonjour,
Dans une procédure VB6.0, une variable locale est-elle réserv ée à partir de
l'instruction DIM ou dès le début de la procédure ?
Exemple:
Private Sub MyProcedure(Byval Exists as Boolean)
if Exists then
.....
dim Cumul as Long
.......
End if
End Sub
Y a-t'il un intérêt en termes de performances à placer l 'instruction DIM Ã
cet endroit ou bien la variable est de toute façon réservé e dès l'entrée de
la procédure ?
Merci d'avance, Jean
Bonjour,
Dans une procédure VB6.0, une variable locale est-elle réserv ée à partir de
l'instruction DIM ou dès le début de la procédure ?
Exemple:
Private Sub MyProcedure(Byval Exists as Boolean)
if Exists then
.....
dim Cumul as Long
.......
End if
End Sub
Y a-t'il un intérêt en termes de performances à placer l 'instruction DIM Ã
cet endroit ou bien la variable est de toute façon réservé e dès l'entrée de
la procédure ?
Merci d'avance, Jean
Bonjour,
Dans une procédure VB6.0, une variable locale est-elle réserv ée à partir de
l'instruction DIM ou dès le début de la procédure ?
Exemple:
Private Sub MyProcedure(Byval Exists as Boolean)
if Exists then
.....
dim Cumul as Long
.......
End if
End Sub
Y a-t'il un intérêt en termes de performances à placer l 'instruction DIM Ã
cet endroit ou bien la variable est de toute façon réservé e dès l'entrée de
la procédure ?
Merci d'avance, Jean
Bonjour,
Dans une procédure VB6.0, une variable locale est-elle réservée à partir
de
l'instruction DIM ou dès le début de la procédure ?
Exemple:
Private Sub MyProcedure(Byval Exists as Boolean)
if Exists then
.....
dim Cumul as Long
.......
End if
End Sub
Y a-t'il un intérêt en termes de performances à placer l'instruction DIM à
cet endroit ou bien la variable est de toute façon réservée dès l'entrée
de
la procédure ?
Bonjour,
Dans une procédure VB6.0, une variable locale est-elle réservée à partir
de
l'instruction DIM ou dès le début de la procédure ?
Exemple:
Private Sub MyProcedure(Byval Exists as Boolean)
if Exists then
.....
dim Cumul as Long
.......
End if
End Sub
Y a-t'il un intérêt en termes de performances à placer l'instruction DIM à
cet endroit ou bien la variable est de toute façon réservée dès l'entrée
de
la procédure ?
Bonjour,
Dans une procédure VB6.0, une variable locale est-elle réservée à partir
de
l'instruction DIM ou dès le début de la procédure ?
Exemple:
Private Sub MyProcedure(Byval Exists as Boolean)
if Exists then
.....
dim Cumul as Long
.......
End if
End Sub
Y a-t'il un intérêt en termes de performances à placer l'instruction DIM à
cet endroit ou bien la variable est de toute façon réservée dès l'entrée
de
la procédure ?
Merci pour toutes vos réponses.
Ok pour le peu d'intérêt en termes de performance pour des variables simples.
Pour la lisibilité, je préfère déclarer la variable dans le bloc ou elle est
utilisée même si cela ne correspond pas à l'usage VB.
Merci à tous.
Merci pour toutes vos réponses.
Ok pour le peu d'intérêt en termes de performance pour des variables simples.
Pour la lisibilité, je préfère déclarer la variable dans le bloc ou elle est
utilisée même si cela ne correspond pas à l'usage VB.
Merci à tous.
Merci pour toutes vos réponses.
Ok pour le peu d'intérêt en termes de performance pour des variables simples.
Pour la lisibilité, je préfère déclarer la variable dans le bloc ou elle est
utilisée même si cela ne correspond pas à l'usage VB.
Merci à tous.
jean saint jalmes a écrit :
J'imaginais qu'il ne fallait cependant faire attention à ne pas
déclarer de variables dans des boucles (do ... loop, while ... wend,
for ... next) même à l'intérieur d'un if then else
J'imaginais un système dans lequel la plupart du temps on ne repassait
pas sur le dim et qu'exceptionnellemnt on passait deux fois dessus
déclenchant l'erreur "variable déjà déclarée"
Quelle ne fut pas ma surprise de voir que cela fonctionnait sans
problème. Quelqu'un a-t'il une explication ?
jean saint jalmes a écrit :
J'imaginais qu'il ne fallait cependant faire attention à ne pas
déclarer de variables dans des boucles (do ... loop, while ... wend,
for ... next) même à l'intérieur d'un if then else
J'imaginais un système dans lequel la plupart du temps on ne repassait
pas sur le dim et qu'exceptionnellemnt on passait deux fois dessus
déclenchant l'erreur "variable déjà déclarée"
Quelle ne fut pas ma surprise de voir que cela fonctionnait sans
problème. Quelqu'un a-t'il une explication ?
jean saint jalmes a écrit :
J'imaginais qu'il ne fallait cependant faire attention à ne pas
déclarer de variables dans des boucles (do ... loop, while ... wend,
for ... next) même à l'intérieur d'un if then else
J'imaginais un système dans lequel la plupart du temps on ne repassait
pas sur le dim et qu'exceptionnellemnt on passait deux fois dessus
déclenchant l'erreur "variable déjà déclarée"
Quelle ne fut pas ma surprise de voir que cela fonctionnait sans
problème. Quelqu'un a-t'il une explication ?
Bonjour,
Je crois que, quand tu déclares deux fois une variable de même
nom, là il plante, mais ici, à chaque fois qu'il passe sur Dim il
réserve la variable et l'initialise avec ce que le hasard met dedans,
c'est en fait, non pas comme si tu écrivais plusieurs fois son nom,
mais comme si tu l'initialisais ?
Pour l'InputBox, pas bon, on ne peux plus sortir en abandonnant la
saisie (If REP = "" Then Exit Sub)...
Bonjour,
Je crois que, quand tu déclares deux fois une variable de même
nom, là il plante, mais ici, à chaque fois qu'il passe sur Dim il
réserve la variable et l'initialise avec ce que le hasard met dedans,
c'est en fait, non pas comme si tu écrivais plusieurs fois son nom,
mais comme si tu l'initialisais ?
Pour l'InputBox, pas bon, on ne peux plus sortir en abandonnant la
saisie (If REP = "" Then Exit Sub)...
Bonjour,
Je crois que, quand tu déclares deux fois une variable de même
nom, là il plante, mais ici, à chaque fois qu'il passe sur Dim il
réserve la variable et l'initialise avec ce que le hasard met dedans,
c'est en fait, non pas comme si tu écrivais plusieurs fois son nom,
mais comme si tu l'initialisais ?
Pour l'InputBox, pas bon, on ne peux plus sortir en abandonnant la
saisie (If REP = "" Then Exit Sub)...
PH wrote:jean saint jalmes a écrit :
Hello,J'imaginais qu'il ne fallait cependant faire attention à ne pas
déclarer de variables dans des boucles (do ... loop, while ... wend,
for ... next) même à l'intérieur d'un if then else
J'imaginais un système dans lequel la plupart du temps on ne repassait
pas sur le dim et qu'exceptionnellemnt on passait deux fois dessus
déclenchant l'erreur "variable déjà déclarée"
Quelle ne fut pas ma surprise de voir que cela fonctionnait sans
problème. Quelqu'un a-t'il une explication ?
Bien sur :-)
Tu oublies que VB est compilé, pas interprété.
Lors de la compilation, le compilateur analyse le code
source et génère le code final.
Quand il va voir, un Dim, il va en tenir compte et générer le code
nécessaire
pour réserver de la place pour cette variable dans le code d'init de la
procédure.
Puis il va générer le reste du code utilisant cette variable.
Et c'est tout :-)
L'exécution du programme résultant de ton code source n'a rien à voir avec
le dit code source: c'est tout l'intérêt d'un compilateur.
Note que même le plus minable des interpréteurs saurait aussi gérer ça de
façon
naturelle: il suffit qu'il ait une règle disant : Dans un contexte donné (la
procédure
par exemple, un Dim n'est effectivement exécuté qu'une seule fois).
Cordialement;
PH wrote:
jean saint jalmes a écrit :
Hello,
J'imaginais qu'il ne fallait cependant faire attention à ne pas
déclarer de variables dans des boucles (do ... loop, while ... wend,
for ... next) même à l'intérieur d'un if then else
J'imaginais un système dans lequel la plupart du temps on ne repassait
pas sur le dim et qu'exceptionnellemnt on passait deux fois dessus
déclenchant l'erreur "variable déjà déclarée"
Quelle ne fut pas ma surprise de voir que cela fonctionnait sans
problème. Quelqu'un a-t'il une explication ?
Bien sur :-)
Tu oublies que VB est compilé, pas interprété.
Lors de la compilation, le compilateur analyse le code
source et génère le code final.
Quand il va voir, un Dim, il va en tenir compte et générer le code
nécessaire
pour réserver de la place pour cette variable dans le code d'init de la
procédure.
Puis il va générer le reste du code utilisant cette variable.
Et c'est tout :-)
L'exécution du programme résultant de ton code source n'a rien à voir avec
le dit code source: c'est tout l'intérêt d'un compilateur.
Note que même le plus minable des interpréteurs saurait aussi gérer ça de
façon
naturelle: il suffit qu'il ait une règle disant : Dans un contexte donné (la
procédure
par exemple, un Dim n'est effectivement exécuté qu'une seule fois).
Cordialement;
PH wrote:jean saint jalmes a écrit :
Hello,J'imaginais qu'il ne fallait cependant faire attention à ne pas
déclarer de variables dans des boucles (do ... loop, while ... wend,
for ... next) même à l'intérieur d'un if then else
J'imaginais un système dans lequel la plupart du temps on ne repassait
pas sur le dim et qu'exceptionnellemnt on passait deux fois dessus
déclenchant l'erreur "variable déjà déclarée"
Quelle ne fut pas ma surprise de voir que cela fonctionnait sans
problème. Quelqu'un a-t'il une explication ?
Bien sur :-)
Tu oublies que VB est compilé, pas interprété.
Lors de la compilation, le compilateur analyse le code
source et génère le code final.
Quand il va voir, un Dim, il va en tenir compte et générer le code
nécessaire
pour réserver de la place pour cette variable dans le code d'init de la
procédure.
Puis il va générer le reste du code utilisant cette variable.
Et c'est tout :-)
L'exécution du programme résultant de ton code source n'a rien à voir avec
le dit code source: c'est tout l'intérêt d'un compilateur.
Note que même le plus minable des interpréteurs saurait aussi gérer ça de
façon
naturelle: il suffit qu'il ait une règle disant : Dans un contexte donné (la
procédure
par exemple, un Dim n'est effectivement exécuté qu'une seule fois).
Cordialement;