Chaine vide de la fonction Dir ?

Résolu
Signaler
Messages postés
2
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
13 novembre 2006
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
salut

j'utilise la foncion Dir de vb pour me retourné les noms des fichier d'un dossier donné mais elle me  retourne une chaine vide sans que le parcour des fichier est términé.
elle s'execute deux fois et sor

Fich_i(1) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\*.csv"):

do while Fich_i(1) <>""

'  mon traitement ****

Fich_i(1) =  Dir
loop

elle s'execute deux fois et sort de la boocle ?
merci encore

6 réponses

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour à tous....

Ton code pourrait ressembler à:

Const RacRep = "D:\Projet\ATM\DASP\Stat\Fichier_CSV"
Dim strListe
Dim rep(5)
rep(0) = "dasp1"
rep(1) = "dasp1\Algerie\Djezzy"
rep(2) = "dasp1\Algerie\Mobilis"
rep(3) = "dasp1\Algerie\Nedjma"
rep(4) = "dasp1\Restedumonde"
Dim rep_courant : rep_courant = Array(rep(0),rep(1),rep(2),rep(3),rep(4))



Dim i
For i = 0 To UBound(rep_courant)
    Call List_Repertoire(RacRep & rep_courant(i), strListe)
Next



MsgBox strListe,,"Liste des fichiers .csv"
WScript.Quit
'###############################################################################
Function List_Repertoire(rep_courant, strListe)
Dim Fso         : Set Fso = CreateObject("Scripting.FileSystemObject")
If Fso.FolderExists(rep_courant) Then
   Dim Dossiers, fic, fichiers, f
   Set Dossiers = fso.GetFolder(rep_courant)
   Set fic = Dossiers.Files
   For Each fichiers in fic
       Set f = fso.GetFile(fichiers)
       If fso.GetExtensionName(fichiers) = "csv" Then
          strListe = strListe &vbCrLf& rep_courant & f.Name &vbCrLf
       End If
       Set f = Nothing
   Next
Set Dossiers = Nothing
Set fic = Nothing
End If
Set Fso = Nothing   
End function


jean-marc
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,

Peu etre parce que ton dossier ne contient que 2 fichiers csv.

Si tu veux parcourir TOUT les fichiers de ce dossier il faut faire *.* au lieu de *.csv

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
2
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
13 novembre 2006

 Resalut

mon dossier contient 7 fichiers, et j'ai déja essayé avec *.*,   peut etre parcque j'utilise le Dir plusieurs fois lors de l'initialisation :

Fich_i(1) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\*.csv"):
Fich_i(2) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\Algerie\Djezzy\*.csv"):
Fich_i(3) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\Algerie\Mobilis\*.csv"):
Fich_i(4) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\Algerie\Nedjma\*.csv"):
Fich_i(5) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\Restedumonde\*.csv"):

et lors de la boocle
    Fich_i(1) = Dir  ' Saut de fichier input
   
    Fich_i(2) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\Algerie\Djezzy" & Fich_i(1)) ' pour pointer sur le meme nom de fichier
    Fich_i(3) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\Algerie\Mobilis" & Fich_i(1))    '
    Fich_i(4) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\Algerie\Nedjma" & Fich_i(1))     
    Fich_i(5) = Dir("C:\Projet\ATM\DASP\Stat\Fichier_CSV\dasp1\Restedumonde" & Fich_i(1))     '

mecri encore
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
48
salut,
dir cherche dans un dossier, pas dans les sous-dossiers.
pour çà, tape fonction récursive dans le moteur, çà devrait t'aider

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Re....
Oups...

Const RacRep = "C:\Projet\ATM\DASP\Stat\Fichier_CSV"
testé at home
jean-marc
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour à tous....
Re, mmm1,

Ce n'est pas la peine de passer par un MP.

Message :
ca ma donné une idée car ton code été beaucoup plus pronfond de ce que je voulais, moi j'ai resolu mon pb a 80% et mnt je suis entrain d'etudier ton code merci encore et bonne journée

Tu peux éventuellement mettre ta réponse (utille pour les autres) et la valider (click sur "réponse acceptée").

jean-marc