Écriture d'un Xml

Résolu
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014 - 30 juin 2011 à 05:25
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 30 juin 2011 à 21:40
Bonjours je travail présentement sur un petit project pour un amis et je rencontre un problème , et oui.. encore , celui ci est le suivant , je me sert dun fichier XML pour sauvarger des informations de la form (Textbox1 Textbox2 ect..) parconte je ne sais point comment écrire plus d'une ligne dans un XML , Voici le code que j'utilise :

   Dim Doc As New XmlDocument

            Dim mElement As XmlElement

            mElement = Doc.CreateElement("Root")

            Doc.AppendChild(mElement)

            Dim xmldecl As XmlDeclaration
            xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
            Doc.InsertBefore(xmldecl, Doc.DocumentElement)

            Doc.Save("c:\UploadLabSettings.xml")


            'Temp.xml sera creer et contiendra juste le minimum pour ensuite ecrire ce que l'on veut dedans

            '<?xml version="1.0"?>
            '<Root/>

            'pour le reste il vous suffit de faire 

            mElement = Doc.CreateElement("Remember")
            mElement.InnerText = "yes"



            Doc.DocumentElement.AppendChild(mElement)
            Doc.Save("c:\UploadLabSettings.xml")


Quelqun a une idée comment faire pour ajouté plus qu'une ligne ?? Dans l'exemple ci dessu on peut voir clairement qu'on écrit dans le fichier XML <Remember>yes</Remember> , j'aimerais pouvoir mettre <Remember2>AutreText</Remember2> en dessou de celui ci. J'espere avoir été clair Et pardonez moi encore une fois pour mes faute de francais

9 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 juin 2011 à 21:06
Bonjour,

Je ne comlprend pas pourquoi le fichier reste ouvert.

Sinon :
If CheckBox1.Checked = True Then
...
End IF
If CheckBox1.Checked = False Then
...
End If

Pet être remplacé par :
If CheckBox1.Checked Then
...
Else
...
End If

Avec ProcessExplorer ou équivalent pour voir si c'est ton programme qui bloque le fichier ou si c'est un AV par exemple ?

Mon site
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 juin 2011 à 13:55
Bonjour,

Après
mElement = Doc.CreateElement("Remember")
mElement.InnerText = "yes"
Doc.DocumentElement.AppendChild(mElement)
Tu mets :
mElement = Doc.CreateElement("Remember2")
mElement.InnerText = "AutreText"
Doc.DocumentElement.AppendChild(mElement)


Mon site
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
30 juin 2011 à 16:54
un gros merci a toi NHenry... je croyais que c'étai plus compliquer que sa
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
30 juin 2011 à 18:54
        If CheckBox1.Checked = True Then
            Dim Doc As New XmlDocument

            Dim mElement As XmlElement

            mElement = Doc.CreateElement("Root")

            Doc.AppendChild(mElement)

            Dim xmldecl As XmlDeclaration
            xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
            Doc.InsertBefore(xmldecl, Doc.DocumentElement)

            Doc.Save("c:\UploadLabSettings.xml")


            'Temp.xml sera creer et contiendra juste le minimum pour ensuite ecrire ce que l'on veut dedans

            '<?xml version="1.0"?>
            '<Root/>

            'pour le reste il vous suffit de faire 

            mElement = Doc.CreateElement("Remember")
            mElement.InnerText = "yes"
            Doc.DocumentElement.AppendChild(mElement)
            mElement = Doc.CreateElement("Account")
            mElement.InnerText = TextBox1.Text
            Doc.DocumentElement.AppendChild(mElement)
            mElement = Doc.CreateElement("Pass")
            mElement.InnerText = TextBox2.Text
            Doc.DocumentElement.AppendChild(mElement)



            Doc.DocumentElement.AppendChild(mElement)
            Doc.Save("c:\UploadLabSettings.xml")


        End If

        If CheckBox1.Checked = False Then

            Dim Doc As New XmlDocument

            Dim mElement As XmlElement

            mElement = Doc.CreateElement("Root")

            Doc.AppendChild(mElement)

            Dim xmldecl As XmlDeclaration
            xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
            Doc.InsertBefore(xmldecl, Doc.DocumentElement)


            Doc.Save("c:\UploadLabSettings.xml")


            'Temp.xml sera creer et contiendra juste le minimum pour ensuite ecrire ce que l'on veut dedans

            '<?xml version="1.0"?>
            '<Root/>

            'pour le reste il vous suffit de faire 

            mElement = Doc.CreateElement("Remember")
            mElement.InnerText = "no"


            Doc.DocumentElement.AppendChild(mElement)
            Doc.Save("c:\UploadLabSettings.xml")

        End If


Quand je clique sur le checkbox pour sauvegarder tout est ok. Si je reclique dessu encore une fois j'ai un erreur me disant que le fichier est deja ouvert , cela veut donc dire qu'il ne se ferme pas correctement? Aurais tu un moyen de le fermé un coup sauvegarder? Merci beaucoup de ton aide et de ton temps.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 juin 2011 à 19:56
Bonjour,

Et si tu essayais de n'avoir qu'une seule instance de ton fichier dans ta fonction, ça évitera les multiples Save alors qu'un seul en fin de procédure est réellement utile.

Mon site
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
30 juin 2011 à 20:16
Oui , J'ai essailer de seulement laissé le dernier car en effect le save d'avant n'est pas vraiment utile... Par conte j'ai toujours le meme probleme surment que le programme ne ferme pas le XML seulement jen e trouve pas comment le fermer =(
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
30 juin 2011 à 21:08
parfait je vais essailer. J'ai essailer de deleter le fichier manuellement quand mon programme est ouvert , impossible , si il est fermé aucun problème mais pour etre sur je vais vérifier avec ProcessExplorer bonne idée! Je vous revien la dessu
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
30 juin 2011 à 21:31
j'ai esailler et rien.. par conte j'ai résusi a corrigé le problème en le fesant d'une autre facon , l'operation de l'écriture du XML se fait dans le bouton a la place , je ne sais pas pourquoi mais tout marche nikel!! Merci encore de ton aide NHenry!!
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 juin 2011 à 21:40
Bonjour,

D'accord.

Si ton pb est résolu, pense à mettre "Réponse acceptée" sur le ou les messages qui (t'ont aidés).

Mon site
0
Rejoignez-nous