Bonjour,
J'ai actuellement ce programme sur Qt permettant d'archiver des valeurs sous format XML mais le problème c'est que j'écrase les valeurs précédentes à chaque enregistrement.
J'aimerais donc faire en sorte d'archiver les valeurs tout en gardant les précédentes (dans le même document si possible).

Que dois-je modifier ou rajouter dans le code
Merci

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
21
22
23
24
25
26
27
28
29
30
31
32
33
 
void IHMPrincipal::on_ButtonXML_clicked()
{
    qDebug() << "on_ButtonXML_clicked()";
            QFile output("ValeursPhysique.xml");
            if(output.open(QFile::WriteOnly))
                { //Si le fichier s'ouvre correctement
                qDebug() << "Ouverture fichier OK"; //Ce message est envoyé dans la sortie de l'application
                QXmlStreamWriter stream(&output); //La classe QXmlStreamWriter fournit un éditeur XML pour l'écriture
                stream.setAutoFormatting(true);
                stream.writeStartDocument(); //Début du document

                //ValeursPhysique
                stream.writeStartElement("ValeursPhysique"); //Ouverture de la balise "ValeursPhysique"
               //Valeur
                       stream.writeStartElement("Valeurs"); //Ouverture de la 2eme balise "Valeurs"
                       stream.writeTextElement("RF", QString::number(std::fmod(ui->lineEditRF->text().toDouble(), 256))); /*writeTextElement() est une méthode utilisée
                        pour écrire des éléments qui ne contiennent que du texte. Ici on récupère la valeur de RF pour l'afficher dans le XML*/
                        //std::fmod -> Calcule le reste à virgule flottante
                       stream.writeTextElement("MPX", QString::number(std::fmod(ui->lineEditMPX->text().toDouble(), 256))); //idem pour MPX
                       stream.writeTextElement("Pilot", QString::number(std::fmod(ui->lineEditPilot->text().toDouble(), 256))); //idem pour Pilot
                       stream.writeTextElement("RDS", QString::number(std::fmod(ui->lineEditRDS->text().toDouble(), 256))); //idem pour RDS
                       stream.writeTextElement("AG", QString::number(std::fmod(ui->lineEditAG->text().toDouble(), 256))); //idem pour AG
                       stream.writeTextElement("AD", QString::number(std::fmod(ui->lineEditAD->text().toDouble(), 256))); //idem pour AD
                       stream.writeTextElement("Tension", QString::number(std::fmod(ui->lineEditTension->text().toDouble(), 256))); //idem pour la Tension
                       stream.writeTextElement("Freq", QString::number(std::fmod(ui->lineEditFreq->text().toDouble(), 65536)));//idem pour la Frequence
                       stream.writeEndElement(); // Fin de la balise "Valeurs"
                       stream.writeEndElement(); // Fin de la balise "ValeursPhysique"
                       stream.writeEndDocument(); //Fin du document
                   }
            else qDebug() << "Erreur ouverture fichier: " << output.errorString(); //Si erreur sur l'ouverture, ce message apparaît
            output.close();
}