If then ... select case Question non existentielle, juste un avis

cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008 - 7 sept. 2004 à 21:20
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 - 8 sept. 2004 à 08:23
plusieurs questions, sur differents type, je pose le code et je met la question ensuite
------ 1er probleme
'code 1 (dans un bouton par exemple)
if Text1.Text <> "" then Exit sub
blablabla
end sub

'code 2 (a comparer avec le 1)
if Text1.Text = "" then
blablabla
end if
end sub

Question: les 2 codes font la même chose, quelle est le mieux? et surtout pk?, d'usage, on utilise la 2eme, mais pk pas la 1ere ?

-----2eme probleme
j'entend souvent parler d'optimisation etc etc, je suis d'accord. De ce fait mon oreille a laissée entendre que le SELECT CASE etait plus rapide que le END IF. Alors quitte a programmer dans "l'absurde", pourquoi ne pas programmer un maximum de SELECT CASE du style meme si il n'y en a qu'un :

Select case Text1.Text
Case Is = "blibli"
blabla
end select

ou alors :
Select case Text1.Text
Case "blibli"
blabla
end select

j'ai comme l'impression que les puristes vont me hurler dessus, mais ce n'est pas grave, je me défoulerais sur d'autres personnes plus tard :big) (non je déconne)

Bonne prog, poele_a_frire@hotmail.com
liquide
A voir également:

3 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 sept. 2004 à 22:05
Optimisation....

pour des comparaisons de textes

utiliser strcomp :

strcomp ( "AA" , "BB" ) -> -1
strcomp ( "BB" , "AA" ) -> 1
(pratique pour trier par ordre alpha)
strcomp ( "AA" , "AA" ) -> 0

et en plus ca possède une propriété pour comparer le texte (pas case sensitive)

strcomp ( "AA" , "aa" , vbTextCompare ) -> 0

pour tester une chaine vide; tester sa longueur :

If lenb(a) = 0 Then

favorisez ici lanb qui est plus rapide que len car quand on utilise len, VB effectue une division par 2 qui n'est pas utile pour tester 0 ! (travail interne en unicode)

pour les codes a comparer, tout dépend du cas de figure...

pour sortir d'une Sub, c'est préférable le 1er car tu évite un saut, et tu reviens, de toute facon au sub appelant... (et c'est plus clair)

enfin, c'est qu'une partie des optimisations que l'on peux apporter.... (calculs récurents, index des tableaux, Codes Ascii, Reallocation.....)

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
8 sept. 2004 à 00:00
Entre le If ... EndIf et le Select Case, je ne suis pas certain que le Select Case soit plus rapide !!!
Cela dépend surement grandement de plusieurs paramêtre : Nb de Case, Est-ce le 1er Case qui est vérifier ou le dernier ?
De plus Select case ne peut travailler que sur les "types finis"

Christophe R.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
8 sept. 2004 à 08:23
Je pense que l'optimisation de code en VB releve tout de même de l'absurde compte tenu du fait que la VM gere tout.

L'optimisation ne se fait pas vaiment sur le codage des testes
mais sur la manipulation de donnée et de chaine. Un peu de rigueur dans le code vaut mieu que de grande optimisation.

Sur ce bonne chance dans ta quete

@+

E.B.
0
Rejoignez-nous