IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Arborescence par récursivité - treeview


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 36
    Par défaut Arborescence par récursivité - treeview
    Bonjour à tous,

    J'essaye de remplir un treeview avec les sous-dossiers et fichiers d'une bibliothèque de fichiers, si possible avec les instruction "de base" de VB6 (je ne suis plus mécano qu'info et je me perd facilement dans les dll, api, ocx...).
    Je rame depuis 3 jours là-dessus et je pensais avoir trouvé l'astuce avec la récursivité, mais ça plante à cause je pense de l'instruction Dir.
    Voudriez-vous jeter un oeil et voir si vous pouvez me débloquer la situation?

    Renaud.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Option Explicit
     
    Dim CheminRepRacine As String       'chemin complet de la racine du treeview
    Dim NoeudX As Node            'objet permettant de créer les noeuds du treeview
     
    Private Sub Form_Load()
     
       CheminRepRacine = App.Path & "\Bibliothèque"
       Tree.ImageList = ImageList1  'Images non-définitives permettant juste de différencier les dossier et les fichiers
       Tree.Nodes.Clear
       'Création de la racine, avec le chemin du dossier en clé
       Set NoeudX = Tree.Nodes.Add(, , CheminRepRacine, "Bibliothèque", "image_Avion")
     
       Call Scan(CheminRepRacine)
    End Sub
     
    Public Sub Scan(ByVal Repertoire As String)
       Dim NomRep As String
       NomRep = Dir(Repertoire & "\", vbDirectory)  'Lecture de la première entrée
       Do While NomRep <> ""   'on va parcourir tous les fichiers de la racine
          ' Il faut ignorer le dossier courant et le dossier contenant le dossier courant (. et ..)
          If NomRep <> "." And NomRep <> ".." Then
             'On utilise une comparaison au niveau du bit pour vérifier que NomRep est un dossier (cf. aide VB de Dir)
             If (GetAttr(Repertoire & "\" & NomRep) And vbDirectory) = vbDirectory Then
                Set NoeudX = Tree.Nodes.Add(Repertoire, tvwChild, Repertoire & "\" & NomRep, NomRep, "image_Avion")
                Call Scan(Repertoire & "\" & NomRep)
             Else
                Set NoeudX = Tree.Nodes.Add(Repertoire, tvwChild, Repertoire & "\" & NomRep, NomRep, "image_Commentaire")
             End If
          End If
          NomRep = Dir 'on passe au fichier suivant de la liste
       Loop
    End Sub

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 36
    Par défaut
    Bonjour,

    Je m'en suis sorti avec scrrun.dll , mais j'ai lu que ça pouvait poser des problèmes de déploiement, quelqu'un pourrait-il préciser?

    Renaud.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    Option Explicit
     
    Dim CheminRepRacine As String       'chemin complet de la racine du treeview
    Dim NoeudX As Node            'objet permettant de créer les noeuds du treeview
    Dim fso As FileSystemObject, dossier As Folder, sousdossier As Folder, fichier As File
     
    Private Sub Form_Load()
     
       CheminRepRacine = App.Path & "\Bibliothèque"
       Tree.ImageList = ImageList1
       Tree.Nodes.Clear
       'Création de la racine, avec le chemin du dossier en clé
       Set NoeudX = Tree.Nodes.Add(, , CheminRepRacine, "Bibliothèque", "image_Avion")
       Set fso = New FileSystemObject
       Set dossier = fso.GetFolder(CheminRepRacine)
       scan dossier
       Tree.Nodes(CheminRepRacine).Expanded = True
     
    End Sub
     
    Public Sub scan(ByVal dossier As Folder)
       For Each sousdossier In dossier.SubFolders
          Set NoeudX = Tree.Nodes.Add(CStr(dossier), tvwChild, CStr(sousdossier), ExtractFileName(sousdossier), "image_Avion")
          scan sousdossier
       Next
     
       For Each fichier In dossier.Files
          Set NoeudX = Tree.Nodes.Add(CStr(dossier), tvwChild, CStr(fichier), ExtractFileName(fichier), "image_Commentaire")
       Next
     
    End Sub
     
    'Cette fonction reçoit le chemin complet d'un fichier en paramètre et renvoie le nom du fichier :
    Public Function ExtractFileName(ByVal sFullPath As String) As String
        If InStr(sFullPath, "\") = 0 Or Right(sFullPath, 1) = "\" Then
            ExtractFileName = ""
            Exit Function
        End If
        ExtractFileName = Mid(sFullPath, InStrRev(sFullPath, "\") + 1)
    End Function

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/06/2009, 14h51
  2. Arborescence par intervalles - Pb de requete
    Par grandpa006 dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/03/2008, 13h32
  3. Chargement du tableau par récursivité
    Par JetliMohamed dans le forum Pascal
    Réponses: 4
    Dernier message: 13/01/2008, 18h42
  4. [Tableaux] arborescence et récursivité
    Par waldo2188 dans le forum Langage
    Réponses: 2
    Dernier message: 16/08/2006, 13h09
  5. Développer l'arborescence d'un treeview
    Par FrédéricCM dans le forum Access
    Réponses: 2
    Dernier message: 01/08/2006, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo