Pb avec Dir

smaugg Messages postés 12 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 28 mai 2004 - 6 mai 2004 à 14:33
smaugg Messages postés 12 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 28 mai 2004 - 7 mai 2004 à 08:30
Bonjour les gens...
j'ai ca comme code:

    Myname = Dir(path)
    Do While Myname <> ""
        If Myname <> "." And Myname <> ".." Then
            'If Myname = "rcoucou.txt" Then
            
            Existe = Dir(fic)
            If Existe <> "" Then
                Open ("d:\stage\VB\youhou.txt") For Append As #1
                Write #1, Myname
                Close #1
            End If
        End If
        Myname = Dir
    Loop



kelkun peu me dire pkoi g comme erreur sur la ligne Myname = Dir me disant
Erreur d'exécution '5'
Argument ou procédure d'appel incorrect

je comprend vraiment po...
en fait ca le fai kan le fichier fic n'existe pas...
mais c un cas ki doit etre possible normalement..

J'aimerai comprendre...

4 réponses

pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
6 mai 2004 à 15:03
Pour tester l existance d'un fichier :
If Dir("c:\fichier", vbNormal) <> vbNullString Then.....

mais ton code n'est pas clair a la base je croyais que tu voulais lister les fichiers d'un chemin dans un fichier txt!!!

en faite si tu ne veu pas appliquer ma premiere ligne ton code devrai ressembler à :

existe = Dir("c:\fichier", vbNormal)
if existe<>Vbnullstring 'Ou ""

Voila ++
0
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
6 mai 2004 à 15:14
Tu es déjà en fin de liste pour la commande Dir.
C'est un peu comme si tu cherchais à lire un champ de recordset alors que EOF = True.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
6 mai 2004 à 23:50
Tu as une erreur car entre ta ligne "myname = Dir(Path)", qui initialise une recherche par Dir et ta ligne "myname = Dir", qui poursuit cette même recherche, tu réinitialises une nouvelle recherche par Dir avec la ligne "Existe = Dir(Fic)"
C'est un fonctionnement un peu bizarroide de Dir qui te gene la !!! C'est ce meme comportement qui fait qu'il n'est pas si simple de faire une recherche recursive de fichier avec un algorithme récursif utilisant Dir.
Une solution peu-être : Mettre ta ligne "Existe = Dir(fic)" en tant que toute 1ere ligne de ton code. Cette affectation ne semble pas être influencé par les traitement de ta boucle While...Wend, et peut donc sans doute être externalisé.
Idem pour la If Existe <> "" Then .... qui suit !
Christophe R.
0
smaugg Messages postés 12 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 28 mai 2004
7 mai 2004 à 08:30
merci bien pour cette explication...

en definitif j'en sui arrivé a la meme...

donc ce ke je fai c ke je reparcours mon repertoire depuis le debut des ke j'effectue un changement et ca marche...

Merci tout plein.... :D
0
Rejoignez-nous