none
probleme xml

    Question

  • bonjour,

    voici un problème

    lorsque j'enregistre mon fichier xml.

    je voudrais qu'il enregistre un fichier mais qu'il vérifie si le fichier existe d'abord, si c'est le cas qu'il incrémente le fichier par logfile1 logfile2 etc...

    ce code marche mais il y a un problème:

     ds.WriteXml("D:\\logfile" + Properties.Settings.Default.logversion + ".xml");
    
                if (File.Exists("D:\\logfile" + Properties.Settings.Default.logversion + ".xml"))
                {
    
                    Properties.Settings.Default.logversion = Properties.Settings.Default.logversion + "1";
                    Properties.Settings.Default.Save();
                    ds.WriteXml("D:\\logfile" + Properties.Settings.Default.logversion + ".xml");
                }
                else
                {
    
                }

    il enregistre et vérifie bien mais le problème c'est qu'il n'additionne pas les versions il fait: logfile1 , logfile11, logfile111.

    et pour le pour le premier enregistrement il enregistre deux fois comme ca: logfile1 et logfile11 en même tant. Je comprend pas pourquoi..

    merci de me venir en aide


    Cardinal dev

    vendredi 24 juin 2016 12:49

Réponses

  • Bonjour philippe gerard,

    C'est normal, lorsque vous ajoutez 1 à votre numéro de version, vous travaillez avec des chaînes de caractères, il faudrait donc convertir votre numéro de version en entier :

    int nextLogVersionNum = Convert.ToInt32(Properties.Settings.Default.logversion) + 1;
    
    Properties.Settings.Default.logversion = nextLogVersionNum.ToString();
    
    Properties.Settings.Default.Save();
    

    Cordialement,

    vendredi 24 juin 2016 13:21
  • Du coup, modifiez cette ligne dans votre if :

    ds.WriteXml("D:\\logfile" + nextLogVersionNum + ".xml");
    

    Cordialement

    vendredi 24 juin 2016 14:22

Toutes les réponses

  • Bonjour philippe gerard,

    C'est normal, lorsque vous ajoutez 1 à votre numéro de version, vous travaillez avec des chaînes de caractères, il faudrait donc convertir votre numéro de version en entier :

    int nextLogVersionNum = Convert.ToInt32(Properties.Settings.Default.logversion) + 1;
    
    Properties.Settings.Default.logversion = nextLogVersionNum.ToString();
    
    Properties.Settings.Default.Save();
    

    Cordialement,

    vendredi 24 juin 2016 13:21
  • ok le problème de numérotation est resolu, merci. mais il enregistre toujours 2 fois comme par exemple: logfile0 et logfile1

    a premier enregistrement et pareil au second enregistrement qui devient:

    logfile0 logfile1 logfile2 et logfile3 ( ici logfile2 et 3 sont identique )

    et ainsi de suite...


    Cardinal dev

    vendredi 24 juin 2016 14:10
  • Du coup, modifiez cette ligne dans votre if :

    ds.WriteXml("D:\\logfile" + nextLogVersionNum + ".xml");
    

    Cordialement

    vendredi 24 juin 2016 14:22
  • merci beaucoup

    Cardinal dev

    vendredi 24 juin 2016 14:57