PETITE GESTION DE FICHIER XML UTILISANT LE DOM EN VB6 - TUTORIEL EXEMPLE.
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016
-
14 nov. 2004 à 23:25
lwred
Messages postés16Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention23 mai 2012
-
1 juin 2010 à 17:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
lwred
Messages postés16Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention23 mai 2012 1 juin 2010 à 17:34
Bonjour !
Enfin un code qui me permet facilement de manipuler un fichier XML, whaou! Merci !
Le truc c'est que je suis un peu puriste (en plus d'être nul), y aurait-il un moyen de classer les nouveaux enregistrements par ordre alphabétique sur le TAG NOM ?
Je ne sais pas comment faire, le classement se fait juste en mettant la Listbox sur Sorted = True mais du coup le fichier généré au format XML n'est pas très propre.
Merci d'avance pour votre aide,
PS pour Seiky, la modif des variables prend 30 secondes chrono.
++
Stéphan
imanuelga
Messages postés3Date d'inscriptionsamedi 8 juin 2013StatutMembreDernière intervention 9 juin 2013 25 nov. 2009 à 20:17
Merci : une mine !
fgombeaud
Messages postés1Date d'inscriptionmercredi 3 janvier 2007StatutMembreDernière intervention27 décembre 2008 27 déc. 2008 à 23:21
Exactement l'exemple que je cherchais. Merci pour toutes ces heures gagnées.
williom
Messages postés230Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention 2 juillet 2009 8 juin 2008 à 15:38
Merci beaucoup pour cette source, très bien commentée.
moimadmax
Messages postés18Date d'inscriptionmardi 2 septembre 2003StatutMembreDernière intervention27 novembre 2008 13 août 2007 à 13:51
He oui, ca sert vraiment toujours :)
Bien sur 10/10 je ne vais pas répeter les 24 commentaires positifs.
Merci jmc70.
Par contre 0/10 pour Seiki. Mais comme chantait Brassens.
Le temps ne fait rien à l'affaire quand on est con ... on est con
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 27 juil. 2007 à 10:00
MERCI!!!
Je ne savais pas utiliser DOM (oui j'avais un peut honte, lol).
Ton exemple est vraiment bien, les commentaires sont nombreux et clairs.
Un petit bémol quand même pour les déclarations de variables qui sont il est vrais obsolète mais je note 10/10 aux vues des commentaires.
Parfait pour découvrir DOM.
Merci encore pour cette source qui va me faire gagner pas mal d'heures de testes.
:) Amicalement :)
cs_Red_Dragon
Messages postés41Date d'inscriptionvendredi 9 juin 2006StatutMembreDernière intervention27 septembre 2006 15 mai 2007 à 10:20
Toujours utile en effet de trouver des exemples et des explications, même sur des sujets que l'on pourrait croire connus de tous. Il y a toujours une première fois... Merci.
bedthdb
Messages postés1Date d'inscriptionmercredi 2 février 2005StatutMembreDernière intervention 4 janvier 2007 4 janv. 2007 à 16:54
Comme quoi, plus de 2 ans après sa publication, il y a encore des amateurs...
Merci, en ce qui me concerne j'utilise beaucoup l'xml en lecture, ce qui me permet de
réaliser des applications avec une maintenance déportée grâce à des fichiers de paramètres XML.
L'intérêt de cet exemple est aussi de montrer comment ajouter des records dans un fichier XML
Thierry
CDMac
Messages postés1Date d'inscriptionlundi 28 avril 2003StatutMembreDernière intervention20 décembre 2006 20 déc. 2006 à 11:53
Merci , tres utile pour moi aussi.
Les commentaires aident beaucoup à la compréhension.
abraal
Messages postés6Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention18 septembre 2007 14 juin 2006 à 11:03
Merci trés bon code ....
Il m'a beaucoup aidé ==> 10/10 ;)
danyflyn
Messages postés8Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention25 mars 2006 25 mars 2006 à 15:48
Vraiment c'est juste ce que je cherchais a long temps sans réussir.
Cette source est vraiment très utile pour ceux que veulent utiliser XML en VB6, je peux dire même c'est un modèle.
Encore la façon comme vous commentez le code c'est incroyable. Vous êtes vraiment un grand professeur.
Merci beaucoup.
peug
Messages postés232Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 5 octobre 2012 9 janv. 2006 à 12:14
Très intéressant ! Mais comment peut-on générer le fichier DTD ? Je serai étonné que l'on doivent développer nous-même le code de génération ! Pourtant la DLL msxml2.dll n'a aucune propriété qui semble s'en rapprocher quelqu'un à une idée sur ce sujet ?
syb007
Messages postés2Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention21 décembre 2005 21 déc. 2005 à 09:40
Un grand merci à toi pour cette petite mine d'or d'informations. C'est exactement ce qu'il me manquait pour démarrer réellement cette option de mon projet.
illumen75013
Messages postés3Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention29 novembre 2005 29 nov. 2005 à 14:18
Tres bien!
A encourager
kosssi
Messages postés2Date d'inscriptionjeudi 11 septembre 2003StatutMembreDernière intervention30 décembre 2005 6 oct. 2005 à 18:34
Vraiment trop bien c'est exactement ca que je cherchais merci beacoup.
10/10
scalpa98
Messages postés2Date d'inscriptionlundi 2 décembre 2002StatutMembreDernière intervention 9 mars 2009 19 sept. 2005 à 20:33
Bonjour !
Voulant me remettre à la programmation sous vb6 de façon un peu plus suivie...Je suis "tombé" sur votre article par hasard. Je désirerai améliorer quelques logiciels de calcul mental en ajoutant un module de base de données gérant les noms les classes les exos et les résultats. Je ne sais vers quoi m'orienter ADO ? ou Xml ? Peut on créer des états dans ce dernier format ?
Qui est ce "DOM" dont vous parlez dans l'article....?
bravo pour vos prog et notamment 1000 mots que j'ai utilisé quand j'avais un ce1..
agnescol
Messages postés32Date d'inscriptionmercredi 20 avril 2005StatutMembreDernière intervention13 septembre 2005 17 mai 2005 à 17:22
merci beaucoup pour ce code, c'est exactement ce que je voulais ça m'a permis de gagner du temps vu que tout est très bien commenté
Bonjour Lvrimmo,
j'ai généré dans la petite gestion, un fichier aléatoire de 32000 enregistrements (je ne suis pas allé au delà car j'utilise des variables entières dans le programme). Chaque enregistrement contient sept champs de 20 caractères ce qui donne en fin de compte un fichier d'un peu moins de 9 Mo (assez économe par rapport à un fichier à accès direct dont tous les champs occupent la même place, qu'ils soient pleins ou vides).
Le chargement du fichier, incluant la constitution de la liste des noms prend environ 6 sec. La sauvegarde de tout le fichier, moins de 4 sec. La mise à jour d'une fiche prend également 6 sec (dans pfg, le fichier est écrit sur le disque et la liste des noms est rechargée intégralement - ce qui peut expliquer cette lenteur). L'accès à une fiche est bien sûr instantané puisque tout le fichier est en mémoire (la recherche en plein texte plante, mais je n'ai pas cherché pourquoi).
J'ai fait les essais sur un portable Centrino à 1,5 Ghz sous XP Pro avec 512 Mo de Ram, le fichier étant sur un disque USB externe. J'avais arrêté et redémarré l'ordinateur pour purger la mémoire.
On peut bien sûr diminuer significativement ces temps d'attente en créant un fichier index séparé et en ne faisant la mise à jour sur le disque qu'à la fin de la session (ce qui présente un risque de perte de données en cas de panne de courant ou de plantage).
Ces performances restent modestes par rapport à un gestionnaire de base de données mais peut rendre déjà pas mal de services (il faut tout de même rentrer les 32000 fiches !)
J'ai aussi généré sans problème 50000 fiches (mais sans pouvoir les recharger du fait des variables entières - n'oublions pas que le programme était au départ destiné à gérer des petits fichiers !)
Amicalement
Lvrimmo
Messages postés4Date d'inscriptiondimanche 30 novembre 2003StatutMembreDernière intervention 2 juillet 2007 4 mars 2005 à 07:50
Merci jmc70 pour cet excellent exemple de code.
Vous indiquez ci-dessus : "Par contre, le mode d'utilisation qui utilise DOM impose un chargement complet en mémoire avant utilisation ce qui le limite en pratique à des fichiers de taille assez modeste."
Qu'entendez-vous par "fichiers de taille assez modeste" ?
Est-ce la taille en ko du fichier xml, le nombre et la quantité des infos qu'il contient ? Enfin, quelle serait pratiquement la conséquence de l'utilisation avec DOM d'un gros fichier ?
Merci pour votre attention.
Victor
Xoh
Messages postés2Date d'inscriptionmercredi 19 juin 2002StatutMembreDernière intervention 2 mars 2005 2 mars 2005 à 16:00
A part la déclaration des variable, effectivement un peu obsolète, très bon code, bien concu et commenté. Merci de ton travail, il va m'être très utile ;°)
Bonjour Seiky,
je suis désolé d'avoir été aussi nul. Merci pour votre "0", j'essaierai de m'améliorer (ce petit programme était sans prétention mais j'ai passé pas mal de temps à essayer de rendre ce source clair pour la communauté).
Le vieux Basic permettait effectivement d'indiquer la nature d'une variable en ajoutant un caractère à la fin de son nom : par exemple un $ pour une chaîne, un % pour un entier etc, à une époque où la déclaration de variable n'était pas obligatoire (à noter que le "Option Explicit" n'est pas non plus obligatoire dans Visual Basic et que celui-ci continue à reconnaître les caractères de définition de type tel que je les ai utilisés - mais je ne le ferai plus dans Code Source, je vous le promets).
Je serai heureux de consulter bientôt vos sources afin de m'en inspirer pour mes futurs développements. Bonne programmation.
seiky
Messages postés1Date d'inscriptionlundi 3 janvier 2005StatutMembreDernière intervention 1 mars 2005 1 mars 2005 à 11:16
ton code source est illisible, et tu déclares mal tes variables (comme on le faisais avec le vieux Basic)
gilgarcia
Messages postés2Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention25 novembre 2008 14 févr. 2005 à 08:33
Merci pour ce source bien documenté avec des exemples clairs.
Excellente qualité pour ce source.
Encore Bravo !!!
toctocrapide
Messages postés1Date d'inscriptionvendredi 14 janvier 2005StatutMembreDernière intervention14 janvier 2005 14 janv. 2005 à 10:54
Vraiment chapeau !!!! ca correspond exactement a mes besoins !!!!! merci beaucoup !!!! BRAVO !!!!
cs_sahli
Messages postés2Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention 2 décembre 2004 2 déc. 2004 à 01:31
un bon programme
cs_sahli
Messages postés2Date d'inscriptionjeudi 8 avril 2004StatutMembreDernière intervention 2 décembre 2004 2 déc. 2004 à 01:25
Merci de ce code source qui est très intéressant
jmlucienvb
Messages postés129Date d'inscriptionmercredi 24 septembre 2003StatutMembreDernière intervention12 février 2009 16 nov. 2004 à 07:46
Je me demandais si un fichier xml une fois constitué pouvait être placé dans un fichier .RES comme une image ou un txt, afin de l'intégrer dans l'exe compilé d'un projet VB
Je ne pense pas que le fichier xml soit limité en taille (jusqu'à la taille maximale tolérée par le système d'exploitation). Par contre, le mode d'utilisation qui utilise DOM impose un chargement complet en mémoire avant utilisation ce qui le limite en pratique à des fichiers de taille assez modeste. Il existe un autre mode d'utilisation qui passe par SAX en accès direct dans le fichier mais que je ne sais pas utiliser sous VB (voir par exemple sous java http://smeric.developpez.com/java/cours/xml/sax/ Sinon, qu'entendez-vous par "être intégré dans un fichier de ressource" ?
jmlucienvb
Messages postés129Date d'inscriptionmercredi 24 septembre 2003StatutMembreDernière intervention12 février 2009 15 nov. 2004 à 13:19
Cette source est très intéressante et me succite deux questions :
Le fichier pgf.xml est-il limité en taille ?
Pourrait-il être intégré dans un fichier de ressource ?
Afyn
Messages postés608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 décembre 2016 14 nov. 2004 à 23:25
Bon code, bien décomposé et documenté.
Bravo !
Ca m'intérésserai de creuser un peu ...
Genre xml et odbc ... ou ADO
xml et SQL ?
1 juin 2010 à 17:34
Enfin un code qui me permet facilement de manipuler un fichier XML, whaou! Merci !
Le truc c'est que je suis un peu puriste (en plus d'être nul), y aurait-il un moyen de classer les nouveaux enregistrements par ordre alphabétique sur le TAG NOM ?
Je ne sais pas comment faire, le classement se fait juste en mettant la Listbox sur Sorted = True mais du coup le fichier généré au format XML n'est pas très propre.
Merci d'avance pour votre aide,
PS pour Seiky, la modif des variables prend 30 secondes chrono.
++
Stéphan
25 nov. 2009 à 20:17
27 déc. 2008 à 23:21
8 juin 2008 à 15:38
13 août 2007 à 13:51
Bien sur 10/10 je ne vais pas répeter les 24 commentaires positifs.
Merci jmc70.
Par contre 0/10 pour Seiki. Mais comme chantait Brassens.
Le temps ne fait rien à l'affaire quand on est con ... on est con
27 juil. 2007 à 10:00
Je ne savais pas utiliser DOM (oui j'avais un peut honte, lol).
Ton exemple est vraiment bien, les commentaires sont nombreux et clairs.
Un petit bémol quand même pour les déclarations de variables qui sont il est vrais obsolète mais je note 10/10 aux vues des commentaires.
Parfait pour découvrir DOM.
Merci encore pour cette source qui va me faire gagner pas mal d'heures de testes.
:) Amicalement :)
15 mai 2007 à 10:20
4 janv. 2007 à 16:54
Merci, en ce qui me concerne j'utilise beaucoup l'xml en lecture, ce qui me permet de
réaliser des applications avec une maintenance déportée grâce à des fichiers de paramètres XML.
L'intérêt de cet exemple est aussi de montrer comment ajouter des records dans un fichier XML
Thierry
20 déc. 2006 à 11:53
Les commentaires aident beaucoup à la compréhension.
14 juin 2006 à 11:03
Il m'a beaucoup aidé ==> 10/10 ;)
25 mars 2006 à 15:48
Cette source est vraiment très utile pour ceux que veulent utiliser XML en VB6, je peux dire même c'est un modèle.
Encore la façon comme vous commentez le code c'est incroyable. Vous êtes vraiment un grand professeur.
Merci beaucoup.
9 janv. 2006 à 12:14
21 déc. 2005 à 09:40
29 nov. 2005 à 14:18
A encourager
6 oct. 2005 à 18:34
10/10
19 sept. 2005 à 20:33
Voulant me remettre à la programmation sous vb6 de façon un peu plus suivie...Je suis "tombé" sur votre article par hasard. Je désirerai améliorer quelques logiciels de calcul mental en ajoutant un module de base de données gérant les noms les classes les exos et les résultats. Je ne sais vers quoi m'orienter ADO ? ou Xml ? Peut on créer des états dans ce dernier format ?
Qui est ce "DOM" dont vous parlez dans l'article....?
bravo pour vos prog et notamment 1000 mots que j'ai utilisé quand j'avais un ce1..
17 mai 2005 à 17:22
merci
5 mars 2005 à 18:08
j'ai généré dans la petite gestion, un fichier aléatoire de 32000 enregistrements (je ne suis pas allé au delà car j'utilise des variables entières dans le programme). Chaque enregistrement contient sept champs de 20 caractères ce qui donne en fin de compte un fichier d'un peu moins de 9 Mo (assez économe par rapport à un fichier à accès direct dont tous les champs occupent la même place, qu'ils soient pleins ou vides).
Le chargement du fichier, incluant la constitution de la liste des noms prend environ 6 sec. La sauvegarde de tout le fichier, moins de 4 sec. La mise à jour d'une fiche prend également 6 sec (dans pfg, le fichier est écrit sur le disque et la liste des noms est rechargée intégralement - ce qui peut expliquer cette lenteur). L'accès à une fiche est bien sûr instantané puisque tout le fichier est en mémoire (la recherche en plein texte plante, mais je n'ai pas cherché pourquoi).
J'ai fait les essais sur un portable Centrino à 1,5 Ghz sous XP Pro avec 512 Mo de Ram, le fichier étant sur un disque USB externe. J'avais arrêté et redémarré l'ordinateur pour purger la mémoire.
On peut bien sûr diminuer significativement ces temps d'attente en créant un fichier index séparé et en ne faisant la mise à jour sur le disque qu'à la fin de la session (ce qui présente un risque de perte de données en cas de panne de courant ou de plantage).
Ces performances restent modestes par rapport à un gestionnaire de base de données mais peut rendre déjà pas mal de services (il faut tout de même rentrer les 32000 fiches !)
J'ai aussi généré sans problème 50000 fiches (mais sans pouvoir les recharger du fait des variables entières - n'oublions pas que le programme était au départ destiné à gérer des petits fichiers !)
Amicalement
4 mars 2005 à 07:50
Vous indiquez ci-dessus : "Par contre, le mode d'utilisation qui utilise DOM impose un chargement complet en mémoire avant utilisation ce qui le limite en pratique à des fichiers de taille assez modeste."
Qu'entendez-vous par "fichiers de taille assez modeste" ?
Est-ce la taille en ko du fichier xml, le nombre et la quantité des infos qu'il contient ? Enfin, quelle serait pratiquement la conséquence de l'utilisation avec DOM d'un gros fichier ?
Merci pour votre attention.
Victor
2 mars 2005 à 16:00
1 mars 2005 à 20:04
je suis désolé d'avoir été aussi nul. Merci pour votre "0", j'essaierai de m'améliorer (ce petit programme était sans prétention mais j'ai passé pas mal de temps à essayer de rendre ce source clair pour la communauté).
Le vieux Basic permettait effectivement d'indiquer la nature d'une variable en ajoutant un caractère à la fin de son nom : par exemple un $ pour une chaîne, un % pour un entier etc, à une époque où la déclaration de variable n'était pas obligatoire (à noter que le "Option Explicit" n'est pas non plus obligatoire dans Visual Basic et que celui-ci continue à reconnaître les caractères de définition de type tel que je les ai utilisés - mais je ne le ferai plus dans Code Source, je vous le promets).
Je serai heureux de consulter bientôt vos sources afin de m'en inspirer pour mes futurs développements. Bonne programmation.
1 mars 2005 à 11:16
14 févr. 2005 à 08:33
Excellente qualité pour ce source.
Encore Bravo !!!
14 janv. 2005 à 10:54
2 déc. 2004 à 01:31
2 déc. 2004 à 01:25
16 nov. 2004 à 07:46
15 nov. 2004 à 18:47
Sinon, qu'entendez-vous par "être intégré dans un fichier de ressource" ?
15 nov. 2004 à 13:19
Le fichier pgf.xml est-il limité en taille ?
Pourrait-il être intégré dans un fichier de ressource ?
14 nov. 2004 à 23:25
Bravo !
Ca m'intérésserai de creuser un peu ...
Genre xml et odbc ... ou ADO
xml et SQL ?
et évidemment xml & MIDI ...
(http://www.midi.org/dtds/midi_xml.shtml)
S'il y en a qui se sente du courage ...
Bonne prog
Afyn
Navedac