Différence entre dir et dir$ [Résolu]

gouzou44 33 Messages postés jeudi 28 décembre 2006Date d'inscription 5 février 2009 Dernière intervention - 15 déc. 2008 à 22:38 - Dernière réponse : Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention
- 18 déc. 2008 à 15:09
Bonjour,

Tout est dans le titre. Je voulais connaître la différence entre dir et dir$.

Merci
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 15 déc. 2008 à 22:52
3
Merci
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.

Dim Monfichier As String

MonFichier = dir$("C:\MonChemin\Fichier.exe")

Voila

A+

Merci bigfish_le vrai 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 85 internautes ce mois-ci

Commenter la réponse de bigfish_le vrai
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 15 déc. 2008 à 22:55
0
Merci
salut,

toute une question....

DIR$ -> n'existe pas

DIR ->

et pour finir, aucune des 2 n'existe en VB.NET


Vous êtes ici : Thèmes / [forum-VB-NET-VB-2005_40.aspx VB.NET et VB 2005] / [theme-DIVERS_221.aspx Divers] /

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 
Commenter la réponse de PCPT
gouzou44 33 Messages postés jeudi 28 décembre 2006Date d'inscription 5 février 2009 Dernière intervention - 15 déc. 2008 à 22:56
0
Merci
Hum ok merci bien.
Commenter la réponse de gouzou44
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 15 déc. 2008 à 22:57
0
Merci
... mouai

pas grave 
Commenter la réponse de PCPT
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 15 déc. 2008 à 23:04
0
Merci
Re,

PCPT en VBA effectivement le dir$ n'apparait pas dans l'explorateur d'objet pourtant :

Sub Demo()
    MsgBox Dir$(ActiveWorkbook.FullName)
End Sub

ne renvois aucune erreur !

A+
Commenter la réponse de bigfish_le vrai
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 15 déc. 2008 à 23:25
0
Merci
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 !
Commenter la réponse de cs_ghuysmans99
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 15 déc. 2008 à 23:26
0
Merci
[../auteur/BIGFISHLEVRAI/510670.aspx bigfish_le vrai]

-> 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 
Commenter la réponse de PCPT
Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention - 18 déc. 2008 à 15:09
0
Merci
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).

Calade
Commenter la réponse de Calade

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.