bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201313 15 déc. 2008 à 22:52
Salut,
je ne suis pas expert de la memoire mais ce que je crois avoir compris est que la propriété dir qui renvois un string vas prendre en memoire pour s'executer une place de variant si tu l'utilise comme suis :
Dim Monfichier As String
MonFichier = dir("C:\MonChemin\Fichier.exe")
Par contre si tu l'utlise avec un $ la place en memoire reserver a sont execution sera la place d'un string et comme il renvois un string il n'y aura pas de probleme de memoire alouée.
décoche la référence Microsoft.VisualBasic, si tu es vraiment en DotNet
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 15 déc. 2008 à 23:25
Aussi d'accord avec [../auteur/BIGFISHLEVRAI/510670.aspx bigfish_le vrai] Mais pour ce qui est qu'elle n'est pas dans l'explorateur d'objets : mystère !
-> il n'y a pas d'erreur car il y a conversion comme tu l'indiques
cependant DIR renvoie bel et bien un string
$ après une fonction n'est pas le fait de passer du variant au string, il y a des fonctions qui proposent ce typage depuis le nom
prenoms le problème à l'envers
pour une fonction comme ceci :
Function Test() As Variant
Test = 1
End Function
MsgBox TypeName(Test) va renvoyer INTEGER (normal)
MsgBox TypeName(Test$)
va générer une erreur , car cette fonction n'existe pas (pour ce type).
pour çà que je m'étais arrêté à cette explication, laissant visible à la capture d'autres fonctions ayant la particule-$
++
<hr size ="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 18 déc. 2008 à 15:09
Bonjour,
Si j'en crois le MSDN, les fonctions sans le $ en fin sont prévues pour accepter un Variant en paramètre alors que les fonctions finissant par un $ présuppose un String en paramètre. La fonction est strictement identique en fonctionnement mais est plus rapide du fait du strong typing du paramètre.
En tout état de cause le strong typing est TRES fortement conseillé et le type variant devrait être banni tant que faire se peut des applications bien qu'il y ait des cas où cela ne soit pas possible.
Le MSDN renvoie l'explication des fonctions ChDir$(), Left$(), Right$() (liste non exclusive) à leurs contreparties sans $.
Ceci n'étant que pour info pour VB6 (pardon de ne pas être moi aussi sur le bon forum).