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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| #include <iostream>
#include <string>
#include <fstream>
#include <vector>
//g++ -o ajouter ajouter.cpp && ./ajouter
using namespace std;
string lireCatalogue(const char *fcatalogue) {
string catalogue="";
ifstream fichier(fcatalogue,ios::in);
if(fichier)
{
string ligne;
while(getline(fichier, ligne))
{
catalogue+=ligne+"\n";
}
}
fichier.close();
return catalogue;
}
void modifierFormation(string& catalogue,string id,string element,string valeur){
int debutFormation=catalogue.find("<formation id='"+id+"'>");
int debutNombre=catalogue.find(element,catalogue.find("<formation id='"+id+"'>"))+element.size();
int finNombre=catalogue.find(element.insert(1,"/"),debutFormation);
catalogue.replace(debutNombre,finNombre-debutNombre,valeur);
}
void ajouterFormation(string& catalogue,string formation)
{
catalogue.insert(catalogue.find("</catalogue>"),formation);
}
void supprimerFormation(string& catalogue,string id)
{
int debutFormation=catalogue.find("<formation id='4'>");
int finFormation=catalogue.find("</formation>",debutFormation)+12;
catalogue.replace(debutFormation,finFormation-debutFormation,"");
}
//#ifdef _ajouter_ut_// tester fonction par fonction
int main(int argc, char **argv) {
string catalogue=lireCatalogue("catalogue.xml"); // déclaration d'une chaîne qui contiendra la ligne lue
modifierFormation(catalogue,"3","<nbProstectus>","12222");
string formation="\
<formation id='5'>\n \
<nom>Brevet de technicien supérieur informatique et réseau pour l'industrie et les services </nom>\n\
<sigle>BTS S.N.I.R</sigle>\n \
<video>code.MP4</video>\n \
<emplacement>3</emplacement>\n \
<nbProstectus>500</nbProstectus> \n \
</formation>\n";
ajouterFormation(catalogue,formation);
supprimerFormation(catalogue,"4");
ofstream fichier1("catalogue.xml",ios::trunc);
fichier1<<catalogue;
fichier1.close();
return 0;
}
//#endif |
Partager