[R] XML <-> TreeView

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

[R] XML <-> TreeView

#1

Message par matwachich »

Salut à tous!

Alors voila, je me lance dans la création d'un gestionnaire de projet pour Scite.
Cela fait longtemps que j'ai arrêté d'utiliser Scite au profit de Programmer's Notepad rien que pour le gestionnaire de projet intégré, mais je me rend compte que Scite possède des trucs vraiment géniaux!

Pour cela, j'ai besoin de pouvoir stocker le projet dans un fichier, j'ai envi d'utiliser le format xml, mais voila je n'y connais rien!
J'ai pas trouvé de tuto concluant, et l'UDF _XMLDomWrapper.au3 est plutôt vague!

J'aimerai utiliser un format compatible avec le format de Programmer's Notepad, qui ressemble à cela:
► Afficher le texte
J'aimerai SVP un exemple (une fonction) qui charge le contenu de ce fichier XML dans un TreeView, genre:

Code : Tout sélectionner

+- Mon Projet
|-- + Dossier
    |-- GUI.au3
    |-- Lang.au3
    |-- Notif.au3
    |-- Server.au3
|-- Config.au3
|-- Globals.au3
|-- Db.au3
MERCI!
Modifié en dernier par matwachich le jeu. 26 janv. 2012 13:23, modifié 1 fois.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] XML <-> TreeView

#2

Message par Tlem »

Pour le TreeView, je suis sur que vous savez comment faire à partir d'un tableau ... :roll:

Pour l'utilisation du _XMLDomWrapper, j'ai aussi du mal à comprendre. Maintenant, vous avez des exemples tout fait sur le forum US : http://www.autoitscript.com/forum/topic ... _p__567756
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
ricky
Niveau 7
Niveau 7
Messages : 443
Enregistré le : ven. 06 févr. 2009 09:25
Localisation : Suisse
Status : Hors ligne

Re: [..] XML <-> TreeView

#3

Message par ricky »

Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] XML <-> TreeView

#4

Message par TopXm »

Hello

Vu que ça m'intéressais l'histoire du XML j'ai regardé vite fait cette page : http://msdn.microsoft.com/fr-fr/library ... aspx#HowDo

Du coup j'ai voulu tester rien que la lecture récursive du fichier
► Afficher le texteLire XML
Et ça ne ... marche pas, je n'affiche aucune valeur et pour cause,en regardant de plus prés le lien MSDN la NodeValue ne se trouve pas au bon endroit dans ton fichier on dirait. Regarde l'exemple de la page : http://msdn.microsoft.com/fr-fr/library ... aspx#HowDo

En gros ça devrait le faire avec un fichier de ce type :
<Project name="Mon Projet">
<File path="tralala 1">c:\Config.au3</File>
<File path="tralala 2">c:\Globals.au3</File>
<File path="tralala 3">c:\Db.au3></File>
<Folder name="Dossier">
<File path="Troubadour 1">c:\GUI.au3</File>
<File path="Troubadour 2">c:\Lang.au3</File>
<File path="Troubadour 3">c:\Notif.au3</File>
<File path="Troubadour 4">c:\Server.au3</File>
</Folder>
</Project>
Hum, pas certain d'avoir été très clair sur mes explications :oops:
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] XML <-> TreeView

#5

Message par matwachich »

Pfiou!
Plus je lis le Guide d'initiation et plus j'ai besoin de Doliprane!

Je crois que je vais abandoné l'idée du XML, c'est beaucoups plus compliqué qu'il n'y paraît!

J'ai vu les liens du forum anglais, et rien de concluant non plus.

Je crois que je vais me tourner vers un bon vieux ini!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] XML <-> TreeView

#6

Message par mikell »

Code : Tout sélectionner

Global $projet
If $projet = $xml Then
   For $doliprane_box = 5 to 0 step -1
    Do
        $doliprane +=1
        Sleep(1000)
    Until $doliprane = 10
    Next
    $xml = 0
    $projet = $ini
EndIf
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [R] XML <-> TreeView

#7

Message par ZDS »

Bonjour,

Si tu me laisses l'aprèm, j'essaye de te faire un script qui te générera un treeview à partir d'un XML (ne lâche pas l'affaire avec le XML, c'est quand même beaucoup plus puissant et largement plus fin que les structures INI ^^).

A plus tard !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] XML <-> TreeView

#8

Message par jchd »

Oui, c'est bien et très tendance XML & co. Mais franchement lourdingue pour nous.
Au passage, je ne résiste pas à l'envie de vous rappeler ce qu'en dit Roger Binns, pourtant un sacré geek :

"If your question is generally about dealing with XML then I suggest fixing a
large amount of padding on the table in front of you right in the spot where
you will be repeatedly banging your head."


Désolé pour la VO ; traduit c'est moins bien.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [R] XML <-> TreeView

#9

Message par ZDS »

"Lourdingue pour nous" ? Je sais pas si tu parles au nom de toute la communauté AutoIt, mais j'espère en faire partie, et je ne suis pas d'accord avec toi.

C'est clair, ça demande pas mal de rigueur. Il n’empêche que le XML, bien maîtrisé (et passons sur les fioritures du genre XSD DTD et XSLT) est beaucoup plus représentatif d'un modèle pouvant être très complexe que peuvent l'être nombre de langages ou structures de description. On peut prendre l'exemple de Matwachich justement, comment modéliser proprement une arborescence, dont on ne connait pas la profondeur de base? C'est cool les .ini quand on a un seul niveau (la section est un répertoire, la clef est un fichier), mais dès qu'on a des sousdossier, bonjour la cagade.

Je comprends qu'on puisse se taper la tête contre un mûr, mais le résultat est bien souvent mieux fait (et surtout PORTABLE ! Bah ouais, tout ne tourne pas autour d'AutoIt ^^).

Bref, sans plus attendre, voici le code :
► Afficher le texteConstruction arborescence en fonction d'un XML
A bientôt, et si besoin n'hésite pas à me demander d'autres renseignements.

PS: J'ai volontairement cloisonné les actions, et utilisé des tableaux de type 1-based, afin d'avoir une certaine cohérence entre deux passages de fonctions. Les trucs purement XML sont préfixés par ... "XML" ^^ les fonctions qui construisent l'arbo sont préfixées par "build". Bye !

PS2 : Je me suis basé sur ton fichier XML de départ, pas sur le fichier de TopXm, afin que tu puisses garder la compatibilité avec "Programmer's Notepad".

PS3 : Paradoxalement, Chewbacca n'est jamais vraiment à poil... Etonnant, non?

EDIT: Je joins les deux fichiers correspondants, histoire de pouvoir tester sans avoir a les recréer à la main (et oublier l'entête du fichier XML comme j'ai pu le faire tout à l'heure ^^)
Fichiers joints
Treeview-XML.xml
(334 Octets) Téléchargé 147 fois
Treeview-XML.au3
(2.49 Kio) Téléchargé 143 fois
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [R] XML <-> TreeView

#10

Message par matwachich »

Tout simplement génial!!!
Je vais décortiqué tout ça! C'est résolu!

Après, il si j'arrive à faire le chemin inverse: passer d'une structure TreeView vers un fichier XML, le gestionnaire de projet pour Scite sera ma priorité N°1! Et pourquoi pas, il sera peut être intégré dans la distribution de Scite4AutoIt!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] XML <-> TreeView

#11

Message par jchd »

Salut ZDS,

Relis bien ce que j'ai dit : " Oui, c'est bien [...] XML"
Et ce n'est pas moi qui parle de .ini, n'est-ce pas.

Je dis seulement que pour une utilisation générale (donc complexe, sinon JSON fait le boulot) XML n'est pas des plus simples. Je ne m'embarquerai pas sur un CMake reposant sur un XML rigoureux en AutoIt.

Si on veut un vrai gestionnaire de projets, il faut gérer des foultitudes de détails et la chose devient subtile.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] XML <-> TreeView

#12

Message par Tlem »

En fouillant le net, je suis tombé sur ceci : http://www.zmws.com/forum/viewtopic.php?id=3606

Certes, c'est un peut vieux, mais cela peut sans doute être une alternative à l'UDF _XMLDomWrapper bien que celui-ci ce base sur le même principe. Simplement, là c'est expliqué en Français. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [R] XML <-> TreeView

#13

Message par matwachich »

Merci Tlem!
Ca me rappel qu'il faut activer le mode Asynchrone, et que on peut utiliser le membre documentElement, j'en déduit donc qu'il ne peut y avoir qu'un seul élément père (root) par fichier.
Et aussi, j'apprend l'existence du membre Lenght, qui me sera utile je pense.

PS: Juste pour vous montrer l'avancement des travaux (et pour frimer un peut! :P )
SciteProjectManager (SPM).zip
(7.83 Kio) Téléchargé 88 fois
Lancer le script SPM.au3, et faites File -> Open et ouvrez le fichier Scite Project Manager.pnproj, vous verrez l'arboréscence de ce projet s'afficher.
Et aussi, quand on double-clique sur un TreeView Item, ses propriétés s'affichent dans la console.

Prochain défit: Faire le chemin inverse! D'un TreeView vers un XML (faudra décortiquer GuiTreeView.au3 !)
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
silvere
Niveau 8
Niveau 8
Messages : 532
Enregistré le : sam. 24 sept. 2011 22:56
Status : Hors ligne

Re: [R] XML <-> TreeView

#14

Message par silvere »

J'ai pas compris ton projet servirais quoi ? un espèce de explorer ?
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [R] XML <-> TreeView

#15

Message par matwachich »

Ca sera pour gérer les projets:
Un logiciel (AutoIt ou autre) possède en général plusieurs fichiers (pour moi en tous cas, qui déteste les gros fichiers de 3000 lignes!): un contient le script principal, l'autre les GUIs, un autre les fonctions relatives à tel ou tel aspect du programme.
Sans compter les autre fichiers: Documentation, To Do liste, Change Log, UDF non standards...

Alors, pourquoi pas mettre toutes cette structure dans un seul fichier??? comme le font tous (presque!) les autre IDE des autres langages?

Pour avoir une idée de ce que je veut faire, Téléchargez Programmer's Notepad, et voyez le gestionnaire de projet (à gauche), c'est (presque) exactement la même chose que je veut faire, mais pour Scite!

J'utilise bien en ce moment PN, que j'ai adapter pour AutoIt, ça fonctionne très bien: je compile directement, F1 marche, j'ai recréer Open Include... Mais Scite4AutoIt possède des fonctionnalités irremplaçables!

J'en ai parler dans le Thread de la beta de Scite sur le forum anglais, mais ils m'on dit qu'aucun utilitaire supplémentaire ne sera développé pour Scite.

Alors, en pensant à ça, je me suis dit: et les dev. de Scite, ils ne compte pas faire de gestionnaire de projet???
Alors j'ai poster un Feature Request sur la page SourceForge de Scite! on vera bien!!!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
silvere
Niveau 8
Niveau 8
Messages : 532
Enregistré le : sam. 24 sept. 2011 22:56
Status : Hors ligne

Re: [R] XML <-> TreeView

#16

Message par silvere »

Très bonne idée !
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
Avatar du membre
Baku
Niveau 5
Niveau 5
Messages : 103
Enregistré le : mar. 26 oct. 2010 18:34
Status : Hors ligne

Re: [R] XML <-> TreeView

#17

Message par Baku »

Ouah, excellente idée, c'est vrai que ça manque !
Bon courage pour la suite ! C'est le genre d'outil qui devient indispensable quand on y a goûté ! :P
[color=#0000FF]jchd[/color] a écrit :On est tous le casse-burnes de quelqu'un à un moment ou un autre !
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [R] XML <-> TreeView

#18

Message par matwachich »

Juste pour info, j'ai mis le projet sur Google Code
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Répondre