hacker591
Messages postés34Date d'inscriptionmardi 10 juin 2014StatutMembreDernière intervention26 janvier 2022
-
14 août 2017 à 09:19
Whismeril
Messages postés18607Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention24 septembre 2023
-
16 août 2017 à 01:42
If File.Exists(parcourir) Then
document.Load(Me.parcourir)
For Each Node3 As Xml.XmlElement In document.SelectNodes("/PlayerSave/Inventory")
Dim item As New ListViewItem(Node3.GetAttribute("level"))
item.SubItems.Add(Node3.GetAttribute("capacity"))
ListView1.Items.Add(item)
Next
End If
mon code enregistrement 1 :
Private Sub savefilexml(parcourir As String)
Try
document.Load(parcourir)
For Each Node1 As Xml.XmlElement In document.SelectNodes("/PlayerSave/Inventory")
For Each lvi As ListViewItem In ListView1.Items
Node1.Attributes.GetNamedItem("Capacity").Value = ListView1.Items(lvi.Index).SubItems(1).Text
Next
Next
document.Save(Me.parcourir)
MessageBox.Show("Fichier enregistrer!", "Sauvegarder", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Erreur de enregistrement du fichier", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
mon code enregistrement 2 :
Private Sub savefilexml(parcourir As String)
Try
document.Load(parcourir)
For Each Node1 As Xml.XmlElement In document.SelectNodes("/PlayerSave/Inventory")
Dim Nodexml As XmlNodeList = Node1.ChildNodes
For j = 0 To ListView1.Items.Count - 1
For Each lvi As ListViewItem In ListView1.Items
Nodexml.ItemOf(j).Attributes.GetNamedItem("Capacity").Value = lvi.SubItems(1).Text
Next
Next
Next
document.Save(Me.parcourir)
MessageBox.Show("Fichier enregistrer!", "Sauvegarder", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Erreur de enregistrement du fichier", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Mon probléme, j'arrive pas enregistrer avec listview1 du fichier xml.
Pouvez-vous me dire comment faire pour enregistrer avec listview1?
Whismeril
Messages postés18607Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention24 septembre 2023629 16 août 2017 à 01:39
bonjour
de la façon dont tu t'y prends (analyse rapide, code pas testé)
Voila ce que tu as écrit
Code1
je prends le 1er noeud (peut importe du quel il s'agit), et tour à tour je lui affecte toutes les valeurs de subitem.
Puis je passe au second noeud, et tour à tour je lui affecte toutes les valeurs de subitem.
Et ainsi de suite jusqu'au dernier noeud.
Sans avoir testé ce code, je parie qu'il donne à tous tes noeuds le dernier subitem existant.
Cas 2
Fait à peu près la même chose.
Ce que tu dois faire est de chercher le noeud qui correspond à un item, et quand tu l'as trouvé et seulement quand tu l'as trouvé, tu affectes la valeur de l'attribut.
Cependant, ceci ne prendra pas en compte les ajouts ou suppressions de ligne.
Il faudra donc le gérer en plus, quand on supprime une ligne, il faut supprimer le noeud correspondant, et quand on ajoute une ligne il faut ajouter le noeud correspondant, à noter que tes lignes d'exemples possèdent l'attribut type en plus de level et capacity.
Maintenant, cette façon de faire n'est pas très "vb.net", c'est plus un bricolage à l'ancienne.
Il serait plus dans l'esprit .Net d'écrire une classe correspondant à ce fichier xml, de la desialiser dans une collection (perso j'aime bien Linq To XML, mais il y a d'autres méthodes, XmlSerializer par exemple).
C'est ensuite les instances de cette collection qu'il faudrai afficher.
Ainsi en cas de modification, tu aurais de suite accès à la bonne instance.
Il faudrait tout de même gérer les ajouts et suppression car la ListView ne supporte pas le binding (des solutions alternatives sont proposées là).
Quand tu veux enregistrer, il te suffit de serialiser la collection.
Whismeril
Messages postés18607Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention24 septembre 2023629 16 août 2017 à 01:42
PS
"Fichier enregistré!"
avec un é
"Erreur d'enregistrement du fichier"
avec un d' ou encore mieux
"Erreur lors de l'enregistrement du fichier"
Si c'est un logiciel que tu destines à quelqu'un d'autre, les fautes d'orthographe font mauvais genre, même si tout le reste marche bien.
16 août 2017 à 01:42
avec un é
avec un d' ou encore mieux
Si c'est un logiciel que tu destines à quelqu'un d'autre, les fautes d'orthographe font mauvais genre, même si tout le reste marche bien.