begin process at 2012 02 12 23:49:57
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > PETITE GESTION DE FICHIER XML UTILISANT LE DOM EN VB6 - TUTORIEL EXEMPLE.

PETITE GESTION DE FICHIER XML UTILISANT LE DOM EN VB6 - TUTORIEL EXEMPLE.


 Information sur la source

Note :
9,26 / 10 - par 19 personnes
9,26 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de Donnees Classé sous :dom, xml, msxml, tutoriel, cours Niveau :Débutant Date de création :14/11/2004 Date de mise à jour :14/11/2004 17:00:36 Vu / téléchargé :23 623 / 5 482

Auteur : jmc70

Ecrire un message privé
Site perso
Commentaire sur cette source (30)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Xml est particulièrement intéressant pour gérer des fichiers à structure dynamique.
Par exemple : dans un fichier de personnes, je veux stocker des adresses mél. A priori, je ne sais pas combien d'adresses chaque personne possède. Dans une structure classique de fichier à accès direct, je prévois 5 champs pour être tranquille avec le risque d'être bloqué si une personne en possède davantage. Ou bien, je crée un champ texte dans lequel je concatène toutes les adresses en utilisant un sépérateur pour les récupérer ensuite. Il faut
néanmoins que je définisse une taille fixe pour ce champ texte et je retombe dans le même problème que pour le nombre de champs, c'est à dire de ne pas avoir suffisamment de place ou au contraire d'en gaspiller pour rien.
Dans un fichier xml, je vais pouvoir définir pour chaque utilisateur un noeud (l'équivalent de l'adresse d'un champ - ou même d'une liste de champs) pour les Méls et ce noeud contiendra autant de sous-noeuds (on dira plutôt de fils) Adresse que nécessaire (aussi bien 0 que 50 si la nécessité l'impose).
Je n'insisterai pas sur les autres intérêts de l'xml comme la naturelle structuration hiérarchique des données, les possibilités d'échange ou de récupération facilitées (essayez donc de faire une moulinette pour récupérer des données dans un fichier à accès direct dont vous ne connaissez pas la structure ni le source du programme qui a servi à le constituer ! En xml, la structure apparaît clairement dans n'importe quel Navigateur Web récent par un simple double-clic sur le nom du fichier).
Comme j'ai eu du mal à trouver des articles assez complets sur la syntaxe du DOM de Microsoft (les articles ID=5471 et ID=26155 de vbfrance m'ont beaucoup aidé - merci à leurs auteurs) et que j'ai pas mal tatonné avant d'arriver à comprendre la philosophie d'intervention dans la structure hierarchique, j'ai décidé de réaliser une petite gestion de fichier sans prétention qui, je l'espère, aidera les débutants à se lancer dans l'aventure. Ce gestionnaire, dont le source est joint avec un fichier exemple, permet de visualiser, ajouter, supprimer, modifier des données et réaliser une recherche simple (bref les fonctions indispensables que chacun pourra adapter pour son propre projet).
Je suis loin d'être un spécialiste dans le domaine et les remarques ou liens utiles seraient je crois très appréciés par tous (notamment un résumé de toutes les fonctions du DOM en français ! avec si possible un exemple d'appel depuis VB6). Je suis preneur.


 Conclusion

Ce gestionnaire s'adresse aux débutants et j'ai documenté le source au maximum. Dans un soucis de clarté, je n'ai pas hésité à utiliser des variables intermédiaires afin de découper chaque action qui concerne le DOM (alors qu'une ligne aurait parfois suffit pour obtenir le même résultat). De plus, afin d'aborder un maximum de domaines, je me suis volontairement compliqué la vie en utilisant les attributs d'étiquettes pour stocker certaines informations (le nom de la personne), plutôt que de les mettre en zone texte (ce que je vous conseille de faire pour vos propres fichiers). Enfin, j'ai mis les nom de variables en français, et ça je crois que c'est un plus pour la compréhension d'un code (dans beaucoup les sources qui utilisent des éléments extérieurs comme les ActiveX, on se demande parfois si on a affaire à un nom de variable ou à une instruction).
Après téléchargement et décompression, je vous invite à double cliquer sur le fichier PGF.xml afin de l'ouvrir dans votre Navigateur Web pour le garder sous les yeux pendant que vous consulterez le source du programme (si vous faites des modifications dans le fichier et les sauvegardez, un appui sur F5 dans le Navigateur Web actualisera l'affichage de votre fichier).

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

14 novembre 2004 17:00:40 :
Pas de modif - j'avais cliqué sur la mauvaise rubrique (base de registre au lieu de base de donnée) ou alors mon doigt a glissé !

 Sources du même auteur

Source avec Zip Source avec une capture AFFICHER UN TEXTE RTF SIMPLE SANS UTILISER RICHTX32.OCX
Source avec Zip Source avec une capture TRI PAR INSERTION
Source avec Zip LANCER LA MESSAGERIE PAR DÉFAUT SOUS WIN 2000, NT, XP (PB DE...
Source avec Zip LANCER UNE APPLICATION SYNCHRONE SANS UTILISER SHELL EN VB6

 Sources de la même categorie

Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

 Sources en rapport avec celle ci

Source avec Zip GESTION DES COURS par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) EXEMPLE D'UTILISATION DU XML AVEC VB.NET par christian_grandjean
Source avec Zip Source avec une capture MANIPULATION XML ET DOM - TUTORIEL SUR FOND DE FLUX RSS par Renfield
Source avec Zip Source avec une capture AJOUTEZ DES PLUGINS DANS VOTRE PROGRAMME par Renfield
Source avec Zip LECTURE ÉCRITURE DU XML 4 - FACILE par VinceVG

Commentaires et avis

Commentaire de Afyn le 14/11/2004 23:25:54

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 ?

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

Commentaire de jmlucienvb le 15/11/2004 13:19:26

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 ?

Commentaire de jmc70 le 15/11/2004 18:47:14

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" ?

Commentaire de jmlucienvb le 16/11/2004 07:46:37

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

Commentaire de sahli le 02/12/2004 01:25:13

Merci de ce code source qui est très intéressant

Commentaire de sahli le 02/12/2004 01:31:14

un bon programme

Commentaire de toctocrapide le 14/01/2005 10:54:55

Vraiment chapeau !!!! ca correspond exactement a mes besoins !!!!! merci beaucoup !!!! BRAVO !!!!

Commentaire de gilgarcia le 14/02/2005 08:33:29

Merci pour ce source bien documenté avec des exemples clairs.
Excellente qualité pour ce source.
Encore Bravo !!!

Commentaire de seiky le 01/03/2005 11:16:21

ton code source est illisible, et tu déclares mal tes variables (comme on le faisais avec le vieux Basic)

Commentaire de jmc70 le 01/03/2005 20:04:15

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.

Commentaire de Xoh le 02/03/2005 16:00:29

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 ;°)

Commentaire de Lvrimmo le 04/03/2005 07:50:14

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

Commentaire de jmc70 le 05/03/2005 18:08:54

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

Commentaire de agnescol le 17/05/2005 17:22:44

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é

merci

Commentaire de scalpa98 le 19/09/2005 20:33:59

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..

Commentaire de kosssi le 06/10/2005 18:34:26

Vraiment trop bien c'est exactement ca que je cherchais merci beacoup.

10/10

Commentaire de illumen75013 le 29/11/2005 14:18:25

Tres bien!
A encourager

Commentaire de syb007 le 21/12/2005 09:40:47

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.

Commentaire de peug le 09/01/2006 12:14:11

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 ?

Commentaire de danyflyn le 25/03/2006 15:48:34

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.

Commentaire de abraal le 14/06/2006 11:03:10

Merci trés bon code ....
Il m'a beaucoup aidé ==> 10/10 ;)

Commentaire de CDMac le 20/12/2006 11:53:21

Merci , tres utile pour moi aussi.
Les commentaires aident beaucoup à la compréhension.

Commentaire de bedthdb le 04/01/2007 16:54:45

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

Commentaire de Red_Dragon le 15/05/2007 10:20:35

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.

Commentaire de Polack77 le 27/07/2007 10:00:53

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 :)

Commentaire de moimadmax le 13/08/2007 13:51:14

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

Commentaire de williom le 08/06/2008 15:38:42 10/10

Merci beaucoup pour cette source, très bien commentée.

Commentaire de fgombeaud le 27/12/2008 23:21:51 10/10

Exactement l'exemple que je cherchais. Merci pour toutes ces heures gagnées.

Commentaire de imanuelga le 25/11/2009 20:17:45

Merci : une mine !

Commentaire de lwred le 01/06/2010 17:34:45 10/10

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

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

tutoriel XML VB.NET [ par methkaff ] SalutJe suis à la recherche d'un tutoriel pour manipuler les fichier XML avec VB.NET et j'arrive pas à en trouver un.Est ce que quelqu'un ici présent MSXML et String [ par run_nahu ] Bonjour à tous.J'aurais besoin de votre aide cxar je connais assez mal MSXML et que je ne trouve rien de probant pour ce que je fais.Je m'explique:J'a XML Schema avec MSXML(VBA) [ par samouille666 ] Bonjour, je developpe une application dont une partie en VBA. Je genere des fichier XML. Je les valide avec une grammaire écrite à la main (les fameu XML DOM Ajouter un enregistrement [ par benat ] Bonjour, j'ai un fichier XML qui ressemble &#224; &#231;a: &lt;Truc&gt; &nbsp;&nbsp;&nbsp; &lt;Machin nom="1" &gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &n nom de la procedure en cours [ par BasicInstinct ] 'lut tout le mondey'a t il un moyen de connaitre le nom de la procedure ou fonction en cours ???++ BasicInstinct <IMG src="/imgs2/smile_clown.gif" ali URGENT bug msxml et vb.net [ par nabilac ] slt,j'ai un tres grand pb avec msxml !!!!!!j'ai creer le setup de mon application qui utilise msxml, mais ca marche au pif d'une machinea l'autre.que Aide en xml pour creer et lire [ par comtention ] Bonjour,Je me suis inspir&#233; de plusieurs sources pour apprendre le xml avec VB mais j'ai du mal. J'aimerais tout dabord creer la racine d'un fichi exporter une BD dans un fichier XML [ par safaezoul ] Bonjour, j'ai une application en vb6 qui g&#233;n&#232;re une base de donn&#233;es Access ou Mysql ou SqlServer selon le choix du client. est ce que j Boutons dynamiques [ par zemele ] Bonjour, Je suis d&#233;butant et j'ai &#224; r&#233;aliser un petit diaporama. En fait j'ai un dossier qui contient des images, un xml attach&#233; [VB.Net] Fichier XML [ par MaDzA ] Bonjour a tous! Je suis en train d'apprendre le principe et le fonctionnement des fichiers XML. Je cherche a supprimer un ligne dans un fichier XML ma


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 12,979 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales