Bonjour,
Je me suis fait un singleton qui récupère tout un lot de constantes que j'ai dans une fichier de config.
Ca fonctionne plutot bien tant que je ne fais qu'afficher mes string récupérés. Sauf que j'ai des string qui sont des path et qui me servent entre autre a creer un fichier xml (j'utilise tinyxml).
Sauf que le path que je recupere fait peter une erreur sur la creation du fichier xml.
Du coup j'ai crée a la main un fichier portant le nom de mon xml et là... en faisant un ll (je suis sous linux) dans le repertoire ,je m'appercois que mon fichier s'appelle:
monnom.xml?
Avec un '?' a la fin!! (un cout sur le path m'affiche juste monnom.xml)
__________________________________________________________________________________________________________
Du coup j'ai tenté diverses choses genre concaténer "[", "monnom.xml" et "]" pour l'afficher avec cout, ca m'affiche:
]monnom.xml
Je suis pas habitué au c++, ni a linux, du coup je sais pas trop ou chercher ><
Pour info je recupere le path dans le fichier initial comme ca:
Dans mon singleton qui recupere et met a dispo les data de conf:
un getline puis un split sur la line:
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::ifstream fichier(fichier_conf.c_str(), ios::in);
et je recupere une constante de mon vecteur comme ca (une methode pour chaque type int/double/bool/string):
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 int conf::Split(vector<std::string>& result, std::string chaine, char separateur) { result.clear(); std::string::size_type stTemp = chaine.find(separateur); while(stTemp != std::string::npos) { result.push_back(chaine.substr(0, stTemp)); chaine = chaine.substr(stTemp + 1); stTemp = chaine.find(separateur); } result.push_back(chaine); return result.size(); }
Ailleurs, je tente de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 string conf::GetStringValue(string name) { for(int i = 0 ; i < m_ConfValues.size(); i++) { cout<<m_ConfValues[i][0].c_str()<<endl; if(m_ConfValues[i][0] == name) { return m_ConfValues[i][1].c_str(); } } return ""; }
avec monfichier qui est le retour de GetStringValue. Mais avec un '?' en trop è_é
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TiXmlDocument *doc = new TiXmlDocument(nomFichier.c_str()); if(!doc->LoadFile()){ cerr << "erreur lors du chargement" << endl; cerr << "error #" << doc->ErrorId() << " : " << doc->ErrorDesc() << endl; return false; }
Merci si vous avez des pistes
Inter'
Partager