rendered paste body#include "c_config.h"c_config::c_config(){ vconfig.clear(); load();}c_config::~c_config(){ vconfig.clear();}void c_config::load(){ vconfig.clear(); string tmp; ifstream f; string::size_type pos; f.open("./CONFIG"); if(!f.is_open()) { cerr<<"l'ouverture du fichier ""CONFIG"" a échouée"<<endl; return; } f.seekg(0, ios_base::beg ); while(getline(f,tmp)) { pos = tmp.find('=', 0); if(pos==string::npos) { cerr<<"ERREUR: la foncttion load() a échouée (npos trouvé)."<<endl; f.close(); break; return; } else { m_struct.type = tmp.substr(0, pos); tmp.erase(0,pos+1); m_struct.valeur = tmp; vconfig.push_back(m_struct); } } f.close();}void c_config::reload(){ load();}string c_config::getcfg(string buffer){ for(int a = 0; a != vconfig.size(); a++) if(vconfig[a].type == buffer) return vconfig[a].valeur; return "ERREUR: la fonction getcfg() a échouée ("+buffer+" n'a pas été trouvé dans vconfig[]).";}void c_config::setcfg(string buffer1, string buffer2){ ofstream f; int b; f.open("./CONFIG",ios_base::trunc); if(!f.is_open()) { cerr<<"l'ouverture du fichier ""CONFIG"" a échouée"<<endl; return; } for(int a = 0,b = -1; a != vconfig.size(); a++) { if(vconfig[a].type == buffer1) { b = 1; vconfig.at(a).valeur = buffer2; for(int a = 0; a != vconfig.size(); a++) f<<vconfig[a].type+"="+vconfig[a].valeur<<endl; break; } } if(b==-1) cerr<<"ERREUR: la fonction setcfg a échouée ("<<buffer1<<" de setcfg() n'a pas été trouvé dans vconfig[])."<<endl; f.close();}void c_config::addcfg(string buffer1, string buffer2){ ofstream f; f.open("./CONFIG",ios_base::app); if(!f.is_open()) { cerr<<"l'ouverture du fichier ""CONFIG"" a échouée pendant addcfg()"<<endl; return; } f<<buffer1+"="+buffer2<<endl; load(); f.close();}