rastamath69
Messages postés45Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 9 novembre 2009
-
11 mai 2005 à 19:30
rastamath69
Messages postés45Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 9 novembre 2009
-
12 mai 2005 à 09:35
bonsoir a tous!
j'ai un petit souci qui me prend la tete depuis le debut d'aprem et que je ne suis pas arrivé a resoudre...
en fait, pour faire simple, j'essaie de faire une fonction qui se balade dans les dossiers et sous-dossier a partir d'un endroit precis.
Mon probleme se situe je crois, dans la fonction dir()...
prenons un exemple, j'ai un dossier PERE et a l'interieur de celui-ci deux dossiers FILS1 et FILS2, dc je rentre dans mon PERE, puis dans FILS1 par recurrence, mais apres lorsque je suis a nouveau dans le pere on dirait que le dir a perdu son chemin et n'arrives pas a aller dans le FILS2...
Voici mon code:
'le parametre chem est le chemin du dossier ds lequel on cherche
Private Function rechercher(chem As String) As String()
Dim tab_liste(50) As String
Dim ind As Integer
Dim cfic As String
cfic = Dir(chem, vbDirectory)
Do While cfic <> vbNullString 'boucle pour parcourir tous les dossiers
If cfic <> "." And cfic <> ".." Then
If (GetAttr(chem & cfic) And vbDirectory) = vbDirectory Then
'ajout tab_liste(), rechercher(chem & cfic & "")
rechercher (chem & cfic & "")
RichTextBox3.Text = RichTextBox3.Text & cfic & Chr(13)
End If
End If
cfic = Dir()
Loop
rechercher = tab_liste()
End Function
pour l'instant je ne recupere pas ce qu'elle me renvoie, puisque ce qui m'interesse dans un premier temps,c d'arriver a parcourir mes dossiers, lol!!!
j'espere que qq'un pourra m'aider paske la g suis sur le point de desesperer...
merci d'avance!!
Rastamath69,
plus on travail , plus on a des problemes, dc plus on a de chances d'en résoudre!
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 11 mai 2005 à 19:53
impossible d'utiliser Dir() en récursif
utilise une table.
Private Sub Rechercher(dossier As String)
Dim i As Integer
Dim nb As Integer
Dim Table() As String
Dim fichier As String
nb = 1
ReDim Table(1)
Table(1) = dossier
While i < nb
i = i + 1
dossier = Table(i)
If Right$(dossier, 1) <> "" Then dossier = dossier & ""
fichier = Dir(dossier & "*.*", vbDirectory Or vbHidden Or vbSystem)
Do Until fichier = ""
If Asc(fichier) <> 46 Then
If (GetAttr(dossier & fichier) And &H10) = vbDirectory Then
nb = nb + 1
ReDim Preserve Table(nb)
Table(nb) = dossier & fichier
Else
List1.AddItem dossier & fichier
End If
End If
fichier = Dir()
Loop
Wend
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 11 mai 2005 à 19:53
j'ai pas regarder ton code, mais c'est souvent du parce que tu passes tes argument en valeur et non en référence. Donc tant que tu montes, tu es correcte, mais dès que tu reviens, il perd les modif de ton argument que tu as passé
en résumer, met byref au lieu de byval
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
rastamath69
Messages postés45Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 9 novembre 20091 12 mai 2005 à 09:35
salut a tous les deux!!
dragon, g essaye de passé en reference mais c'etait la mm chose...
je pense que gobillot a confirme ce que je pensai en disant que dir() n'est pas utilisable en recurrence...
en tt cas gobillot ton prog marche impeccable!!! je n'esperai pas mieux!!!! un gd merci dc!!
Un gd merci a ts les deux d'ailleurs pr m'avoir aider!!!! je peux continuer mon prog c genial!!!
Rastamath69,
plus on travail , plus on a des problemes, dc plus on a de chances d'en résoudre!