IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Gestion d'un fichier XML


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 80
    Par défaut Gestion d'un fichier XML
    Bonjour à tous,

    J'essaie de gérer un petit système de sauvegarde / chargement via fichier XML.

    J'arrive à écrire dans un fichier en faisant comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var set = new XDocument(
                        new XElement("sets",
                            new XElement("set",
                                new XElement("description",
                                    new XElement("date", txt_date_set.Text),
                                    new XElement("nom", txt_nom_set.Text)))));
    set.Save(Settings.Default.fichierXML);
    Cela fonctionne et donne par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <sets>
      <set>
        <description>
          <date>10/12/2014</date>
          <nom>Set du 10/12/2014</nom>
        </description>
      </set>
    </sets>
    Le souci est qu'à chaque fois que je clique sur Enregistrer, il réécrit le fichier hors j'aimerais que les sauvegardes que je fais se font dans un nouveau <set></set>.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <sets>
      <set>
        <description>
          <date>10/12/2014</date>
          <nom>Set du 10/12/2014</nom>
        </description>
      </set>
      <set>
        <description>
          <date>11/12/2014</date>
          <nom>Set du 11/12/2014</nom>
        </description>
      </set>
      <set>
        <description>
          <date>25/12/2014</date>
          <nom>Set de Noël</nom>
        </description>
      </set>
    </sets>
    La méthode que j'utilise est du Linq to XML si je ne dis pas de bêtises, mais je n'ai pas trouvé de solutions. Je pense que j'initialise simplement mal la chose, il faut surement que je charge et que j'ajoute à la suite ou quelque chose du genre.

    Si quelqu'un aurait une solution à mon problème je suis preneur !
    Merci d'avance

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    alors si tu veux faire une sauvegarde xml ca peut se faire en une seule ligne de code sans s'embêter
    il suffit de faire une classe contenant tous tes paramètres, avec un singleton
    et d'utiliser la classe xmlserializer, l'instance vers le fichier et réciproquement avec une ligne de code et le singleton static pour l'utilisation depuis le code
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 80
    Par défaut
    Ah ... tu aurais un exemple de code ? Je ne connais pas du tout les singletons

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    tu cherches sur google, ya plein d'exemple d'utilisation de la serialization comme proposé par pol63.

    Après, si tu veux continuer à utiliser ton code, tu peux aussi écrire dans un fichier de façon séquentiel.

    Je pense qu'en faisant une recherche sur google, c'est aussi 5 mn à peine pour trouver du code tout fait et un exemple...

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 80
    Par défaut
    J'ai essayé la sérialisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var s = new Set
                    {
                        Id = nomSet,
                        Details = new Details
                        {
                            Date = txt_date_set.Text,
                            Nom = txt_nom_set.Text
                        };
    var xs = new XmlSerializer(typeof(Set));
                    using (var wr = new StreamWriter(Settings.Default.fichierXML))
                    {
                        xs.Serialize(wr, s);
                    }
    Cela fonctionne mais mon souci reste le même il réecrit le fichier à chaque fois

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    si tu veux enregistrer plusieurs trucs, il faut une variable qui puisse contenir plusieurs trucs, genre une collection
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Choix de l'outils de gestion d'un fichier XML
    Par megamario dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/05/2014, 08h18
  2. Réponses: 6
    Dernier message: 24/04/2012, 13h53
  3. [C#] Gestion d'un fichier XML.
    Par Trousse dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/03/2012, 12h14
  4. Gestion d'un fichier XML en VB 2010
    Par mandra123 dans le forum VB.NET
    Réponses: 3
    Dernier message: 31/10/2010, 14h34
  5. Gestion de fichiers xml par php
    Par omman95 dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2006, 07h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo