[VB.NET] Treeview à partir d'un fichier texte [Résolu]

Messages postés
2
Date d'inscription
mardi 14 décembre 2004
Statut
Contributeur
Dernière intervention
5 décembre 2006
- - Dernière réponse : Pilosite
Messages postés
2
Date d'inscription
mardi 14 décembre 2004
Statut
Contributeur
Dernière intervention
5 décembre 2006
- 5 déc. 2006 à 14:20
Bonjour à tous,


je galère sur un problème de treeview dont je n'arrive pas à trouver une solution simple et efficace.


J'ai un fichier texte de la forme :


1:Toto

1:titi

2:tata

2:tutu

3:blabla

2:bobo

1:keke

...


où le chiffre représente l'ordre hierarchique.

Je souhaite, à partir de ce fichier, générer un TreeView (.NET 2.0,
Winform) qui aura la tête suivante (par rapport à l'exemple ci dessus)


[] Toto

[] Titi

...[] tata

...[] tutu

......[] blabla

...[] bobo

[] keke


en sachant que j'ai x niveau de sous noeuds.


J'ai regardé des exemples sur le net qui tourne souvent autour du file
system, mais je n'ai pas trouvé de solution pour faire ce traitement.
Pas de pb pour la lecture du fichier texte, le split des valeurs,
etc... c'esg vraiment sur la construction du treeview que je sèche.


Des idées de pistes ?


merci d'avance!
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
24
Date d'inscription
jeudi 31 mars 2005
Dernière intervention
15 septembre 2017
3
Merci
ça donnerait à peu près ceci :

AjouterUnNoeud(1, "Toto")
AjouterUnNoeud(1, "titi")
AjouterUnNoeud(2, "tata")
AjouterUnNoeud(2, "tutu")
AjouterUnNoeud(3, "blabla")
AjouterUnNoeud(2, "bobo")
AjouterUnNoeud(1, "keke")

Private Sub AjouterUnNoeud(ByVal pniveau As Integer, ByVal psTexte As String)   
    'noeud racine ou 1er appel : ajout à la suite à la racine !
    If pniveau <= 1 Or TreeView1.Nodes.Count <= 0 Then
        TreeView1.Nodes.Add(psTexte)
        Exit Sub
    End If

    Dim node As TreeNode
    'recup du dernier noeud racine ajouté
    node = TreeView1.Nodes(TreeView1.Nodes.Count - 1)
    'recup du dernier parent du niveau juste supérieur à celui à ajouter
    For i As Integer = 1 To pniveau - 2
        If node.Nodes.Count > 0 Then
        node = node.Nodes(node.Nodes.Count - 1)
        End If
    Next
    'ajout du nouveau noeud enfant
    node.Nodes.Add(psTexte)
End Sub

ça donne ça : (si l'image passe bien)

Note : la fonction est un peu "brute", reste à ajouter les tests, etc. ...

Merci nbaduraux 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de nbaduraux
Messages postés
2
Date d'inscription
mardi 14 décembre 2004
Statut
Contributeur
Dernière intervention
5 décembre 2006
0
Merci
Merci beaucoup, c'est impec ! c'est bien sur l'index que je me cassais les dents.
Commenter la réponse de Pilosite

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.