j'ai fait quelques tests de performances sur les fonctions
Asc vs AscW, et Chr$ vs ChrW$. Egalement testé la différence
entre s="" et s=vbNullSTring et enfin if s="" contre
If lenB(s) = 0. De quoi être étonné. Tous les résulats ici:
http://myjmnhome.dyndns.org/B2006/benchfunc.htm
Pour des programmes ou algorithmes faisant un usage intensif de
ces fonctions, on peut avoir un sacré gain (j'ai gagné un facteur
2 dans certaines parties critiques de Rabbit).
A utiliser bien sur a bon escient: pas la peine d'employer
des fonctions rapides dans un algorithme médiocre ou pas
adapté; Il vaut mieux utiliser un Chr$() dans un algo en
n.Log(n) qu'un ChrW$() dans un algo en n² :-))
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Pour ce qui est du "do loop", les différentes possibilités d'écriture sont très variées mais seules l'utilisation du "exit d"o permet une boucle contrôlé avec partie de traitement avant sortie et partie de traitement avant boucle même si dans la plupart des cas on peut faire autrement il y a des situations ou ce exit do est bien pratique. Après tout en assembleur c'est bien des goto qu'on trouve ...
Patrice
Je suis d'accord avec toi, mais Jean-marc est un puriste impénitent. ;-) Je voyais un moyen de sortir de la boucle par un If ... Then
_Solution 1_ Do Code1 If Condition then Exit Do Code2. Loop Until Test
_Solution 2_ Do Code1 If Not Condition then Code2 End If Loop Until Test
Quelle est la solution la plus efficace ?
Aski
Salutatoi Patrice Henrio,
Tu as donc déclaré :
Pour ce qui est du "do loop", les différentes possibilités d'écriture
sont très variées mais seules l'utilisation du "exit d"o permet une
boucle contrôlé avec partie de traitement avant sortie et partie de
traitement avant boucle même si dans la plupart des cas on peut faire
autrement il y a des situations ou ce exit do est bien pratique.
Après tout en assembleur c'est bien des goto qu'on trouve ...
Patrice
Je suis d'accord avec toi, mais Jean-marc est un puriste impénitent. ;-)
Je voyais un moyen de sortir de la boucle par un If ... Then
_Solution 1_
Do
Code1
If Condition then Exit Do
Code2.
Loop Until Test
_Solution 2_
Do
Code1
If Not Condition then
Code2
End If
Loop Until Test
Pour ce qui est du "do loop", les différentes possibilités d'écriture sont très variées mais seules l'utilisation du "exit d"o permet une boucle contrôlé avec partie de traitement avant sortie et partie de traitement avant boucle même si dans la plupart des cas on peut faire autrement il y a des situations ou ce exit do est bien pratique. Après tout en assembleur c'est bien des goto qu'on trouve ...
Patrice
Je suis d'accord avec toi, mais Jean-marc est un puriste impénitent. ;-) Je voyais un moyen de sortir de la boucle par un If ... Then
_Solution 1_ Do Code1 If Condition then Exit Do Code2. Loop Until Test
_Solution 2_ Do Code1 If Not Condition then Code2 End If Loop Until Test
Quelle est la solution la plus efficace ?
Aski
Jean-Marc
"Aski" a écrit dans le message de news:OIqVlS%
Salutatoi Patrice Henrio,
Tu as donc déclaré :
> Pour ce qui est du "do loop", les différentes possibilités
d'écriture
> sont très variées mais seules l'utilisation du "exit d"o permet une > boucle contrôlé avec partie de traitement avant sortie et partie de > traitement avant boucle même si dans la plupart des cas on peut
faire
> autrement il y a des situations ou ce exit do est bien pratique. > Après tout en assembleur c'est bien des goto qu'on trouve ... > > Patrice > Je suis d'accord avec toi, mais Jean-marc est un puriste impénitent.
;-)
Je voyais un moyen de sortir de la boucle par un If ... Then
_Solution 1_ Do Code1 If Condition then Exit Do Code2. Loop Until Test
_Solution 2_ Do Code1 If Not Condition then Code2 End If Loop Until Test
Quelle est la solution la plus efficace ?
Hello,
En fait je suis daccord avec vous 2: il ne faut pas être dogmatique! Il y a des cas ou l'utilisation judicieuse de Exit Do est recommandée :-) On peut être "puriste" sans être un taliban :-)
Les 2 solutions (1) et (2) me semblent toutes 2 convenables, en fonction du contexte.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Aski" <aski@asci.asc> a écrit dans le message de
news:OIqVlS%23NGHA.3936@TK2MSFTNGP10.phx.gbl...
Salutatoi Patrice Henrio,
Tu as donc déclaré :
> Pour ce qui est du "do loop", les différentes possibilités
d'écriture
> sont très variées mais seules l'utilisation du "exit d"o permet une
> boucle contrôlé avec partie de traitement avant sortie et partie de
> traitement avant boucle même si dans la plupart des cas on peut
faire
> autrement il y a des situations ou ce exit do est bien pratique.
> Après tout en assembleur c'est bien des goto qu'on trouve ...
>
> Patrice
>
Je suis d'accord avec toi, mais Jean-marc est un puriste impénitent.
;-)
Je voyais un moyen de sortir de la boucle par un If ... Then
_Solution 1_
Do
Code1
If Condition then Exit Do
Code2.
Loop Until Test
_Solution 2_
Do
Code1
If Not Condition then
Code2
End If
Loop Until Test
Quelle est la solution la plus efficace ?
Hello,
En fait je suis daccord avec vous 2: il ne faut pas être dogmatique!
Il y a des cas ou l'utilisation judicieuse de Exit Do est
recommandée :-)
On peut être "puriste" sans être un taliban :-)
Les 2 solutions (1) et (2) me semblent toutes 2 convenables,
en fonction du contexte.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
> Pour ce qui est du "do loop", les différentes possibilités
d'écriture
> sont très variées mais seules l'utilisation du "exit d"o permet une > boucle contrôlé avec partie de traitement avant sortie et partie de > traitement avant boucle même si dans la plupart des cas on peut
faire
> autrement il y a des situations ou ce exit do est bien pratique. > Après tout en assembleur c'est bien des goto qu'on trouve ... > > Patrice > Je suis d'accord avec toi, mais Jean-marc est un puriste impénitent.
;-)
Je voyais un moyen de sortir de la boucle par un If ... Then
_Solution 1_ Do Code1 If Condition then Exit Do Code2. Loop Until Test
_Solution 2_ Do Code1 If Not Condition then Code2 End If Loop Until Test
Quelle est la solution la plus efficace ?
Hello,
En fait je suis daccord avec vous 2: il ne faut pas être dogmatique! Il y a des cas ou l'utilisation judicieuse de Exit Do est recommandée :-) On peut être "puriste" sans être un taliban :-)
Les 2 solutions (1) et (2) me semblent toutes 2 convenables, en fonction du contexte.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Aski
Salutatoi Jean-Marc le grand taliban ;-)
Tu as donc déclaré :
_Solution 1_ Do Code1 If Condition then Exit Do Code2. Loop Until Test
_Solution 2_ Do Code1 If Not Condition then Code2 End If Loop Until Test
Quelle est la solution la plus efficace ?
Hello,
En fait je suis daccord avec vous 2: il ne faut pas être dogmatique! Il y a des cas ou l'utilisation judicieuse de Exit Do est recommandée :-) On peut être "puriste" sans être un taliban :-)
Les 2 solutions (1) et (2) me semblent toutes 2 convenables, en fonction du contexte.
Ce qui est ennuyeux, c'est que l'on trouve plus facilement chez Microsoft des exemples avec des Exit Do, Exit Sub ou Exit Function que sans.
Salutatoi Jean-Marc le grand taliban ;-)
Tu as donc déclaré :
_Solution 1_
Do
Code1
If Condition then Exit Do
Code2.
Loop Until Test
_Solution 2_
Do
Code1
If Not Condition then
Code2
End If
Loop Until Test
Quelle est la solution la plus efficace ?
Hello,
En fait je suis daccord avec vous 2: il ne faut pas être dogmatique!
Il y a des cas ou l'utilisation judicieuse de Exit Do est
recommandée :-)
On peut être "puriste" sans être un taliban :-)
Les 2 solutions (1) et (2) me semblent toutes 2 convenables,
en fonction du contexte.
Ce qui est ennuyeux, c'est que l'on trouve plus facilement chez Microsoft
des exemples avec des Exit Do, Exit Sub ou Exit Function que sans.
_Solution 1_ Do Code1 If Condition then Exit Do Code2. Loop Until Test
_Solution 2_ Do Code1 If Not Condition then Code2 End If Loop Until Test
Quelle est la solution la plus efficace ?
Hello,
En fait je suis daccord avec vous 2: il ne faut pas être dogmatique! Il y a des cas ou l'utilisation judicieuse de Exit Do est recommandée :-) On peut être "puriste" sans être un taliban :-)
Les 2 solutions (1) et (2) me semblent toutes 2 convenables, en fonction du contexte.
Ce qui est ennuyeux, c'est que l'on trouve plus facilement chez Microsoft des exemples avec des Exit Do, Exit Sub ou Exit Function que sans.
Aski
Salutatoi Patrice Henrio,
Tu as donc déclaré :
en fait le "end sub" est un "exit sub" déguisé puisque "exit sub" renvoie au "end sub" ... c'est très différent du "goto" basic qui lui sautait directement à l'adresse indiqué sans rien contrôler. Donc les exit ne sont pas réellement des "goto" mais plutôt des return. De même bien sûr pour exit for et exit "loop".
Sans oublier que les GoTo peuvent se brancher sur une étiquette placée en amont et que les branchements peuvent se croiser, ce qui était parfaitement illiaible dans les premiers Basic. Le GoSub et le Reurn ont nettement arrangé les choses.
Salutatoi Patrice Henrio,
Tu as donc déclaré :
en fait le "end sub" est un "exit sub" déguisé puisque "exit sub"
renvoie au "end sub" ...
c'est très différent du "goto" basic qui lui sautait directement à
l'adresse indiqué sans rien contrôler.
Donc les exit ne sont pas réellement des "goto" mais plutôt des
return. De même bien sûr pour exit for et exit "loop".
Sans oublier que les GoTo peuvent se brancher sur une étiquette placée en
amont et que les branchements peuvent se croiser, ce qui était parfaitement
illiaible dans les premiers Basic.
Le GoSub et le Reurn ont nettement arrangé les choses.
en fait le "end sub" est un "exit sub" déguisé puisque "exit sub" renvoie au "end sub" ... c'est très différent du "goto" basic qui lui sautait directement à l'adresse indiqué sans rien contrôler. Donc les exit ne sont pas réellement des "goto" mais plutôt des return. De même bien sûr pour exit for et exit "loop".
Sans oublier que les GoTo peuvent se brancher sur une étiquette placée en amont et que les branchements peuvent se croiser, ce qui était parfaitement illiaible dans les premiers Basic. Le GoSub et le Reurn ont nettement arrangé les choses.
Patrice Henrio
en fait le "end sub" est un "exit sub" déguisé puisque "exit sub" renvoie au "end sub" ... c'est très différent du "goto" basic qui lui sautait directement à l'adresse indiqué sans rien contrôler. Donc les exit ne sont pas réellement des "goto" mais plutôt des return. De même bien sûr pour exit for et exit "loop".
"Aski" a écrit dans le message de news: %
Salutatoi Jean-Marc le grand taliban ;-)
Tu as donc déclaré :
_Solution 1_ Do Code1 If Condition then Exit Do Code2. Loop Until Test
_Solution 2_ Do Code1 If Not Condition then Code2 End If Loop Until Test
Quelle est la solution la plus efficace ?
Hello,
En fait je suis daccord avec vous 2: il ne faut pas être dogmatique! Il y a des cas ou l'utilisation judicieuse de Exit Do est recommandée :-) On peut être "puriste" sans être un taliban :-)
Les 2 solutions (1) et (2) me semblent toutes 2 convenables, en fonction du contexte.
Ce qui est ennuyeux, c'est que l'on trouve plus facilement chez Microsoft des exemples avec des Exit Do, Exit Sub ou Exit Function que sans.
en fait le "end sub" est un "exit sub" déguisé puisque "exit sub" renvoie au
"end sub" ...
c'est très différent du "goto" basic qui lui sautait directement à l'adresse
indiqué sans rien contrôler.
Donc les exit ne sont pas réellement des "goto" mais plutôt des return.
De même bien sûr pour exit for et exit "loop".
"Aski" <aski@asci.asc> a écrit dans le message de news:
%23b3GlLEOGHA.3284@TK2MSFTNGP14.phx.gbl...
Salutatoi Jean-Marc le grand taliban ;-)
Tu as donc déclaré :
_Solution 1_
Do
Code1
If Condition then Exit Do
Code2.
Loop Until Test
_Solution 2_
Do
Code1
If Not Condition then
Code2
End If
Loop Until Test
Quelle est la solution la plus efficace ?
Hello,
En fait je suis daccord avec vous 2: il ne faut pas être dogmatique!
Il y a des cas ou l'utilisation judicieuse de Exit Do est
recommandée :-)
On peut être "puriste" sans être un taliban :-)
Les 2 solutions (1) et (2) me semblent toutes 2 convenables,
en fonction du contexte.
Ce qui est ennuyeux, c'est que l'on trouve plus facilement chez Microsoft
des exemples avec des Exit Do, Exit Sub ou Exit Function que sans.
en fait le "end sub" est un "exit sub" déguisé puisque "exit sub" renvoie au "end sub" ... c'est très différent du "goto" basic qui lui sautait directement à l'adresse indiqué sans rien contrôler. Donc les exit ne sont pas réellement des "goto" mais plutôt des return. De même bien sûr pour exit for et exit "loop".
"Aski" a écrit dans le message de news: %
Salutatoi Jean-Marc le grand taliban ;-)
Tu as donc déclaré :
_Solution 1_ Do Code1 If Condition then Exit Do Code2. Loop Until Test
_Solution 2_ Do Code1 If Not Condition then Code2 End If Loop Until Test
Quelle est la solution la plus efficace ?
Hello,
En fait je suis daccord avec vous 2: il ne faut pas être dogmatique! Il y a des cas ou l'utilisation judicieuse de Exit Do est recommandée :-) On peut être "puriste" sans être un taliban :-)
Les 2 solutions (1) et (2) me semblent toutes 2 convenables, en fonction du contexte.
Ce qui est ennuyeux, c'est que l'on trouve plus facilement chez Microsoft des exemples avec des Exit Do, Exit Sub ou Exit Function que sans.