begin process at 2012 02 17 11:14:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

Débutants

 > 

Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

mercredi 1 juillet 2009 à 15:54:50 | Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

megamario



Bonjour à tous

Pour ceux qui me connaisse déjà, mon projet avance mais suite a (enfin) une réunion pour établir (enfin) un cahier des charges. J'ai quelques modification a apporter a mon programme, surtout en ce qui concerne les fichiers XML. Ce que j'avais modifié avec une grand aide de"Mayzz", qui m'avais crée un morceau de code. Malheureusement ne conviens plus.

Voici le code XML sur lequel je doit travailler(ce sera de ce format la):
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<?xml version='1.0' encoding="utf-8" ?>
<config>
  <type version="ACM1000">
    <mesures>
      <item>
    <nom>U Batterie</nom>
    <Obj>RDAT/5_1/</Obj>
    <Ind>2</Ind>
    <Format>100</Format>
    <Unit>V</Unit>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
    <SeuilInter>0</SeuilInter>
      </item>
      <item>
    <nom>I Batterie</nom>
    <Obj>RDAT/6_1/</Obj>
    <Ind>3</Ind>
    <Format>100</Format>
    <Unit>A</Unit>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
    <SeuilInter>0</SeuilInter>
      </item>
      <item>
    <nom>U Util</nom>
    <Obj>RDAT/5_1/</Obj>
    <Ind>4</Ind>
    <Format>100</Format>
    <Unit>V</Unit>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
    <SeuilInter>0</SeuilInter>
      </item>
    </mesures>
    <entrees>
      <item>
          <nom>CFD</nom>
     <Obj>RDAT/9_1/</Obj>
    <Ind>9</Ind>
    <Format>100</Format>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
      </item>
      <item>
          <nom>Alarm</nom>
     <Obj>RDAT/8_1/</Obj>
    <Ind>8</Ind>
    <Format>100</Format>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
      </item>
    </entrees>
  </type>
  <type version="ACMi1000">
    <mesures>
      <item>
    <nom>U Batterie</nom>
    <Obj>RDAT/5_1/</Obj>
    <Ind>2</Ind>
    <Format>100</Format>
    <Unit>V</Unit>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
    <SeuilInter>0</SeuilInter>
      </item>
      <item>
    <nom>I Batterie</nom>
    <Obj>RDAT/6_1/</Obj>
    <Ind>3</Ind>
    <Format>100</Format>
    <Unit>A</Unit>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
    <SeuilInter>0</SeuilInter>
      </item>
      <item>
    <nom>U Util</nom>
    <Obj>RDAT/5_1/</Obj>
    <Ind>4</Ind>
    <Format>100</Format>
    <Unit>V</Unit>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
    <SeuilInter>0</SeuilInter>
      </item>
    </mesures>
    <entrees>
      <item>
          <nom>CFD</nom>
     <Obj>RDAT/9_1/</Obj>
    <Ind>9</Ind>
    <Format>100</Format>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
      </item>
      <item>
          <nom>Alarm</nom>
     <Obj>RDAT/8_1/</Obj>
    <Ind>8</Ind>
    <Format>100</Format>
    <Selection>false</Selection>
    <SelectInter>false</SelectInter>
      </item>
    </entrees>
  </type>
</config>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Et voici le bout de code que j'ai commencé:

   Function Load(ByVal filename As String) As Collection
        '
        Try
            Dim i As Integer = 0
            'Dim resul As Integer
            Dim Coll As XmlDocument = New XmlDocument
            Coll.Load(filename)
            Dim navigateur As XPathNavigator = Coll.CreateNavigator()
                   'La je veux récupérer tout les information qui concerne l'ACM1000 / mesures /item
            Dim noeuds As XPathNodeIterator = navigateur.Select("/config/type[@version='ACM1000']/mesures/item")
            While noeuds.MoveNext()
                Dim Nom, Type, Obj, Ind, Format, Unit, Selection, SelectInter, SeuilInter As String
                       'Voila ce que je veux obtenir a savoir remplir mes variables correspondante puis remplir ma collection.
                       Nom =
                       Type =
                       Obj =
                       Ind =
                       Format =
                       Unit =
                       Selection =
                       SelectInter =
                       SeuilInter =
                       'Ma collection
                       'Ici remplissage de ma collection avec toute les variables

            End While
        Catch e As Exception
            MsgBox("erreur")
            Return Nothing
        End Try
    End Function

Voila, j'ai comme vous prouver voir tester avec les XPath
Et la j'essaie avec DOM
Mais a chaque fois j'ai du mal. Avec Xpath j'arrive pas à parcourir tout les données enfant de "item"
On pensais a définir le select directement dans item/nom puis item/Obj etc... sa marche mais c'est lourd.

Et pour le moment en utilisation de DOM j'arrive a parcourir les noeud mais pas a recuperer les données

Merci de votre aide

Technicien en électricité industriel. En cours de reconversion par un BTS IRIS 1er année.
Actuellement en stage dans mon entreprise en R&D.
mercredi 1 juillet 2009 à 17:02:07 | Re : Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

Mayzz

Membre Club
Salut ;O)

Tu as donc un format d' XML déja existant ? Tu ne peux donc pas créer toi même ton propre shéma xml si je comprend bien ? Donc la serialisation n'est plus possible ?

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
<

mercredi 1 juillet 2009 à 18:03:18 | Re : Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

megamario

Bonjour, Mayzz

Je dirais pas que je l'ai déjà existant mais ou peut conciderer tout comme car il m'impose se format. Mais il faut que je le crée a la mimine. Par contre je doit pouvoir le faire évoluer de mon logiciel.
Votre précédente proposition, après quelque légère modification, marchais très bien et j'arrivais à faire ce que je voulais.
le problème c'est que suite a la réunion quelques éléments ont changés. et notamment dans le déroulement du logiciel il doit être possible de sauvegarder les modifications et sélection faite pour évite a l'opérateur de tout sélectionner. La sauvegarde devra donc utilisé la même architecture XML.
Avec la précédente version j'avais 2 fichier par système multiplié par le nombre de système, maintenant il m'en faut qu'un seul fichier XML avec tout dedans comme on retrouve avec mon exemple de XML si dessus. La j'en ai mis que 2 mais j'en ai 6 systèmes diffèrents.

Donc il faut que je puisse recuperer mes données corespondante au system selectionner que je stock dans une voir 2 collection (mon maitre de stage préfèrerais 1 collection, mais moi je préfère 2 collections pour séparer les mesures analogique et les autres qui sont tout ou rien. Je doit pourvoir le modifier (ajouter ou enlever des données dans chaque système)  par contre pas ajouter de nouveau systèmes.
Et enfin je doit pouvoir récupérer ma ou mes collections pour crée un nouveau XML que je peut sauvegarder pour le recharger plutard dans ce fichier XML il peut trés bien y avoir que 1 seul système avec donc ces mesures et entrée.



Technicien en électricité industriel. En cours de reconversion par un BTS IRIS 1er année.
Actuellement en stage dans mon entreprise en R&D.
jeudi 2 juillet 2009 à 10:04:24 | Re : Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

megamario

Bonjour,

Je suis arriver a quelque chose pour la lecture de mon fichier XML:
***************************************************
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Nom, Type, Obj, Ind, Format, Unit, Selection, SelectInter, SeuilInter As String
        Dim Typ As XmlNode
        Dim Types As XmlNode
        Dim Items As XmlNode
        Doc = New Xml.XmlDocument
        Doc.Load("f:\essaie1.xml")
        ListXml = Doc.GetElementsByTagName("type")
        For Each Typ In ListXml
            If Typ.Attributes("version").Value = "ACM1000" Then
                For Each Types In Typ
                    If Types.LocalName = "mesures" Then
                        For Each Items In Types
                            Nom = Items.SelectSingleNode("nom").InnerText
                            Type = "mesure"
                            Obj = Items.SelectSingleNode("Obj").InnerText
                            Ind = Items.SelectSingleNode("Ind").InnerText
                            Format = Items.SelectSingleNode("Format").InnerText
                            Unit = Items.SelectSingleNode("Unit").InnerText
                            Selection = Items.SelectSingleNode("Selection").InnerText
                            SelectInter = Items.SelectSingleNode("SelectInter").InnerText
                            SeuilInter = Items.SelectSingleNode("SeuilInter").InnerText
                            'Ici incrementation de ma variable collection des mesures
                            ''                 "
                            ''                 "
                            ''                 "
                            ''                 "
                        Next
                    End If
                    If Types.LocalName = "entrees" Then
                        For Each Items In Types
                            Nom = Items.SelectSingleNode("nom").InnerText
                            Obj = Items.SelectSingleNode("Obj").InnerText
                            Ind = Items.SelectSingleNode("Ind").InnerText
                            Selection = Items.SelectSingleNode("Selection").InnerText
                            SelectInter = Items.SelectSingleNode("SelectInter").InnerText
                            'Ici incrementation de ma variable collection des entrees
                            ''                 "
                            ''                 "
                            ''                 "
                            ''                 "
                        Next
                    End If
                Next
            End If
        Next
    End Sub
*******************************************************************

La cela marche bien, je récupère bien mes données. Reste à les stocker dans une collection.

Et ensuite la modification et la création.



Technicien en électricité industriel. En cours de reconversion par un BTS IRIS 1er année.
Actuellement en stage dans mon entreprise en R&D.
jeudi 2 juillet 2009 à 10:07:19 | Re : Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

megamario

J'ai oublier en déclaration j'ai bien sur sa aussi, avant la fonction Load
    Dim Doc As XmlDocument
    Dim ListXml As XmlNodeList

Technicien en électricité industriel. En cours de reconversion par un BTS IRIS 1er année.
Actuellement en stage dans mon entreprise en R&D.
jeudi 2 juillet 2009 à 10:39:33 | Re : Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

megamario

Une chose importante aussi, il faut que je puisse classer les données dans l'ordre alphabétique par rapport au nom

Technicien en électricité industriel. En cours de reconversion par un BTS IRIS 1er année.
Actuellement en stage dans mon entreprise en R&D.
jeudi 2 juillet 2009 à 16:26:11 | Re : Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

Mayzz

Membre Club
Salut megamario,

Il te faut créer une classe avec des propriétés (Obj, Ind; Format, Mesure), et instacier une collection de cette classe List (Of MyClass)

Ainsi tu aura une collection d'objet avec des propriétés et chaque antité représentera une donnée de ton XML

Dim DataColl As New List(Of MyClass)'Instancie une collection de type MyClass

Dim nClass As MyClass 'crée un nouvelle instance de MyClass 

'Rempli les valeur de cette instance
nClass.Obj = "Tata"
nClass.Ind = 1
nClass.Format = "Toto"
nClass.Mesure = 0.1

DataColl.Add nClass 'Ajout de l'instance à la collection.

@+ Mayzz

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
<

vendredi 3 juillet 2009 à 14:10:44 | Re : Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

megamario

Bonjour Mayzz

J'y suis enfin arrivé, je retrouve un peut ce qui tu viens de me proposé, en tout cas maintenant ma collection marche
mais j'ai toujours un souci, décidément je suis pas bon :(

J'arrive bien a crée mes collections à partir du XML, à les lires et à  ajouter  manuellement un ensemble de données (représentant par exemple un nouvelle mesure) pas de souci la dessus, mais j'arrive pas a ajouté dans le fichier XML existant cette nouvelle mesures. J'arrive a crée un nouveau fichier grâce à la fonction SAVE().
Et tout sa pas bien si j'utilise la fonction WriteAllText() mais cela n'implémente pas le fichier.

voici ce que je voudrais ajouter donc a mon fichier
                     Co = New Items                  'Items etant ma classe pour la collection
                            Co = CollMesure(k)      'k etant la clef de mon Hashtable CollMesure
                            Dim Aj As XElement = _
                            <item>
                                <Nom><%= Co.Nom %></Nom>
                                <Obj><%= Co.Obj %></Obj>
                                <Ind><%= Co.Ind %></Ind>
                                <Format><%= Co.Format.ToString %></Format>
                                <Unit><%= Co.Unit %></Unit>
                                <Selection><%= Co.Selection.ToString %></Selection>
                                <SelectInter><%= Co.SelectInter.ToString %></SelectInter>
                                <SeuilInter><%= Co.SeuilInter.ToString %></SeuilInter>
                            </item>
Je vais essayer de me placer dans le fichier a l'aide de Xpath pour le moment j'ai essayer avec DOM mais c'est pas concluant ;)



Technicien en électricité industriel. En cours de reconversion par un BTS IRIS 1er année.
Actuellement en stage dans mon entreprise en R&D.
lundi 6 juillet 2009 à 07:52:42 | Re : Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

megamario

Bonjour à vous,

Arff pas de net ce week-end :(
Bon du coup je reprend mon problème du boulot.

J'arrive toujours pas a ajouter un noeud dans mon fichier XML, mais il y a une chose que j'ai déjà peut être pas compris:
L'écriture se fait en live ou pas? Je m'explique, peut t'on modifier directement le fichier XML ou faut t'il le charger puis le modifier puis le réenregistrer. je pense que c'est déjà pour sa que je comprend pas tout.

Pourtant cela parait simple en regardant les tuto mais je doit etre vraiment mauvais ;).

Merci de votre aide



Technicien en électricité industriel. En cours de reconversion par un BTS IRIS 1er année.
Actuellement en stage dans mon entreprise en R&D.
lundi 6 juillet 2009 à 12:41:51 | Re : Lire, modifier et crée un fichier XML sous VB.net 2008 - Le retour

megamario

Personne pour m'aider  s'il vous plais, je suis vraiment bloquer avec sa.



Technicien en électricité industriel. En cours de reconversion par un BTS IRIS 1er année.
Actuellement en stage dans mon entreprise en R&D.

1 2

Cette discussion est classée dans : item, xml, false, batterie, rdat


Répondre à ce message

Sujets en rapport avec ce message

[vb6] parcourir un fichier xml [ par tof008 ] Bonjour! Oui, je sais : "il y a pleins de sources qui traitent de ce sujet"! Certes! Mais ces sources sont compliquées, et je cherche un peu plus simp dataGridView1.SelectedCells [ par XGuarden ] Bonjour, Premierement, ces moi ou le chat du site ne fonctionne plus?Deuxiemement,(un peu plus sérieux)...voici la méthode que j'utilise pour récupéré fichier xml [ par misschat ] bjr je tiens deja  a preciser ke je n'y connais rien en programmation ma situation est la suivante g restauré des conversations msn qui ont ete jeté d Datagridview.Visible = true ??? [ par c0nsur ] Bonjour, j'aimerais changer la propriete de mon datagridview (VISIBLE=true - VISIBLE=FALSE)mais a partir d'une application MDI de form1 à form2 :c'est ListView ajouter un Item par le code [ par size_one_1 ] Bonjour tout le monde,voila mon souci, j ai un listvew, et je souhaite lui ajouter des items par le code.seulement voila, je soujaite joindre a chacun Liste de téléphone VBA [ par avyrex1926 ] Bonjour à tous,J'ai un fichier excel qui contient dans l'onglet Ancienneté global. Parcontre dans cette onglet, dans la colone A ce trouve l'anciennet InferXmlSchema [ par maryeytan ] Bonjour, Je débute en développement et j'ai une application à developper en vb.net pour pocket. Le stockage des données se fait sous format xml. Ma qu Fonction choix onglet excel en VBA [ par avyrex1926 ] Re-bonjour à tous,Dans mon projet, je dois copier des données d'un des onglet dans un autre onglet nommé TEMPS SUPP.Pour cela, j'ai un UserForm avec 4 Comment fair pour retirer un item de la listbox ? [ par mySQL15 ] Voila je voulait savoir comment retirer un item de la listbox voici ce que j'ai fait -une listbox-un textbox -2 bouttonOn entre du texte dans le texte De Dataset vers XML(Attribut) [ par maryeytan ] J'ai developpé une petite application en VB.net dans laquelle je charge mon fichier XML( sans schema) dans un dataset. Je peux naviguer sans soucis, v


Nos sponsors


Sondage...

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 : 1,388 sec (3)

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