Test: strText = "" ou Len(strText) = 0 ?

cs_LogOff Messages postés 69 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 14 juillet 2009 - 2 nov. 2006 à 21:35
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 3 nov. 2006 à 15:50
Une question qui m'est venue à l'esprit: pour tester si une variable String contient du texte ou non, faut-il employer:

strVariable = ""

OU

Len(strVariable) = 0

?

ça m'intéresserait de savoir, d'autant plus que chacune de ces 2 méthodes sont utilisées.


LogOff

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 nov. 2006 à 21:49
Tu peux utiliser les 2.

Beaucoup d'optimiseurs de codes te conseilleront d'utiliser plutot Len(...) car plus rapide.

Perso j'utilise indifféremment l'une comme l'autre.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 nov. 2006 à 22:21
Lenb() est plus rapide:
test 10 millions de fois:
If "ABC" = "" 0.73 s
If "ABC" = vbNullString 0.58 s
If Len("ABC") = 0 0.46 s
If LenB("ABC") = 0 0.39 s

Daniel
0
cs_LogOff Messages postés 69 Date d'inscription dimanche 6 octobre 2002 Statut Membre Dernière intervention 14 juillet 2009
3 nov. 2006 à 00:11
Ok, merci pour vos réponses. Daniel, tu utilises quel prog pour chronométrer l'exécution des instructions de VB ?

LogOff
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
3 nov. 2006 à 01:28
en l'occurence ici j'ai utilisé google
sinon plus sérieusement j'utilise GetTickCount, ou QueryPerformanceCounter s'il faut plus de précision.
http://www.shamrock-software.eu/vb.htm
Daniel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
3 nov. 2006 à 15:30
Bonjour,
As-tu pensé à chronometrer
GetTickCount, ou QueryPerformanceCounter ?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
3 nov. 2006 à 15:50
Après un petit essai, voici les résultats

Les blocs If sont codé de la sorte :
    If condition Then
    End If

Mode debuggage sous l'IDE
If "ABC" = ""             : 1,4468 µseconds
If "ABC" = vbNullString   : 0,5110 µseconds
If Len("ABC") = 0         : 0,7942 µseconds
If LenB("ABC") = 0        : 0,6680 µseconds

Mode exe compilé
If "ABC" = ""             : 1,3729 µseconds
If "ABC" = vbNullString   : 0,6418 µseconds
If Len("ABC") = 0         : 0,7326 µseconds
If LenB("ABC") = 0        : 0,6711 µseconds

Chacun appréciera

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Rejoignez-nous