acidburn23
Messages postés9Date d'inscriptionvendredi 3 mai 2002StatutMembreDernière intervention29 mai 2002
-
14 mai 2002 à 13:36
acidburn23
Messages postés9Date d'inscriptionvendredi 3 mai 2002StatutMembreDernière intervention29 mai 2002
-
14 mai 2002 à 20:29
Comment faire pour sauvegarder l'arborescence d'un treeview?
Merci d'avance
Voici l'arborescence de l'arbre:
Serveurs
+ PCTEST
+Groupe public
+Groupe privé
+PCTEST1
+Groupe public
+Groupe privé
cs_DeathAngel
Messages postés117Date d'inscriptionvendredi 12 avril 2002StatutMembreDernière intervention13 avril 2007 14 mai 2002 à 14:29
Salut,
Ca dépend comment tu veux la sauver : si c'est juste pour te rappeler la structure lors du prochain chargement, tu peux utiliser un fichier texte ayant comme structure :
Serveurs;0
PCTEST;1
Groupe public;1
...
où chaque ligne représente un noeud et chaque chiffre représente le niveau (0=racine)
Personnellement, je trouve encore plus simple au niveau maintenance de passer par une table (access ou autre) dans laquelle tu stocke 4 valeurs :
1) l'ordre d'apparition, qui va te permettre d'organiser ton arbre grâce à un tri
2) le nom du noeud
3) le niveau
4) un booléen pour savoir si le noeud est une feuille.
Dans ton cas, ca donne ca :
0;Serveurs;0;False
1;Groupe public;1;True
2;Groupe privé;1;False
etc...
L'utilité du premier champs est de pouvoir modifier l'ordre des noeuds sans te prendre la tête à faire des tests sur le nom dans le code.
C'est pas le top, mais ca fonctionne très bien, même avec de nombreux sous-niveaux.
Du coup, pas besoin de sauvegarde, tu n'as qu'à modifier directement dans la table.
Si tu es dans le cas d'un arbre dynamique qui change souvent, tu peux éventuellement faire une sauvegarde en parcourant ton arbre dans l'ordre, et en stockant les valeurs dans les champs :
for i=0 to N
'Mettre i dans le 1er champ
'Mettre le nom du noeud dans le 2ème champ
'Mettre le niveau...
'Mettre le booléen à jour
next i