Différence entre dim et dim$

Résolu
cs_nemesis20 Messages postés 20 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 6 mai 2005 - 3 mai 2005 à 20:32
cs_nemesis20 Messages postés 20 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 6 mai 2005 - 4 mai 2005 à 08:13
bonsoir,



je voudrais savoir pk il existe 2 fonctions : dim et dim$

quelle est la différence entre les deux (si il y en a une, je nai pa trouvé dexplication precise)

et est-il préferable d'utiliser une plus que l'autre ???



Merci davance.

5 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
3 mai 2005 à 22:41
Mid et Mid$ ont toutes les deux le même but : Elle extrait une portion d'une chaine à partir d'une position donnée et sur une longueur donnée elle aussi. Jusque la je pense que tu étais OK. La différence vient du fait que Mid te retourne un variant et que Mid$ te retourne un String. Est-ce important ? Bcp trouve que non, mais moi je pense que si. En général, ton Mid, tu en affectes le résultat à une variable qui est une string, donc, avec le Mid, VB est obligé de faire un transtypage implicit (AutoTypeCast en anglais), ce qui plui prend du temps, bcp de temps. Car pour tout dire, il faut savoir que Mid traite ses donnée en tant que String en interne, puis Convertit la string qu'il obtient en Variant et ensuite, toi tu oblige VB à repasser le Variant en String !!! Avec Mid$, il retourne directement la String, et la, ca roule nickel .... Tu gagnes des quart de millisecondes, mais dans une boucle de 1 000 000 de tours, et ben ca commence à se voir !!!
A noter que toutes les fonction retournant un truc ressemblant à une string existe en version $ : Left$, right$, Asc$, replace$ ....
A toi de te faire ton opinion ...

Christophe R
3
VBSorcier Messages postés 102 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 29 avril 2007
3 mai 2005 à 20:57
lorsque tu fais "dim" tu peur attribuer n'importe quel "format" :

ex:
dim toto as string
...
dim toto as long
...
dim toto as boolean

que lorsque tu fais "Dim$" tu attribue forcement du "string" (chaine de caractères):

que tu fasse : dim toto as string
ou dim$ toto
ou dim$ toto as string
cela revient au meme...

essayes de faire
dim$ toto as long
et ba dans ce cas VB met automatiquement sous la forme
dim toto as long

pour l'utilisation cela n'a pas d'importance c'est comme tu veu l'une est plus rapide a ecrire que l'autre mais laquelle, je te laisse mediter la dessus !!!!

voila j'espère avoir eclairé ta lanterne !!!

a+
0
VBSorcier Messages postés 102 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 29 avril 2007
3 mai 2005 à 21:01
j'ai oublié, lorsque tu fais "dim toto" par defaut le format est "As Variant"...
alors que "dim$ toto" est "As String"

voila

a+
0
cs_nemesis20 Messages postés 20 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 6 mai 2005
3 mai 2005 à 21:03
lol ok. Mais en fai je me sui planté dans ma question, je voulai parler
de Mid et Mid$ . desole ; je sais pa pourquoi jai marque dim et dim$.



donc si tu pe me parler de Mid et Mid$ .......



en tout cas merci de ton aide
0

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

Posez votre question
cs_nemesis20 Messages postés 20 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 6 mai 2005
4 mai 2005 à 08:13
ok. merci pour cette explication crenaud76. La au moins c clair et maintenant je vois bien la difference entre les deux.



Merci. ++
0
Rejoignez-nous