If then ... select case Question non existentielle, juste un avis
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008
-
7 sept. 2004 à 21:20
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 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:
If then ... select case Question non existentielle, juste un avis
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.....)
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 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"
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 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.