Class et map

silverfr78021959 Messages postés 45 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 30 novembre 2005 - 10 nov. 2005 à 15:57
silverfr78021959 Messages postés 45 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 30 novembre 2005 - 12 nov. 2005 à 17:45
Bonjour !
Voilà j'ai problème j'ai vraiment besoin d'aide svp. Je vais essayé de faire précis.
voilà j'ai un programme en c++ et je dois créer une nouvelle class qui me permettrais de récupérer des valeurs dans un fichier txt par exemple afin que celle-ci soit utilisable dans le programme à partir de n'importe quelle endroit. Pour cela je dois créer un fichier configuration.cpp qui lui renfermera tout le traitement de parcour du fichier pui une fonction display pour l'affochage du resutltat afin de voir si je récupere vbine tout. Ensuite un fichier configuration.h qui lui renfermera la classune, map ect afin de traiter la parsage ou le parcou du fichier. Et de la je dois pouvoir utiliser par la suite n'importe quelles valeurs du fichier dans mon programme voilà mon problème pourriez vous m'aider svp.

Voici un exemple de programme que j'ai fais

fichiers .txt à parcourir ::

/*********** Paramètres de configuration ****************
Alt: E;
ext: 3;
type: double;
clust: LO;
filePar0:Par0.txt;
filePar1: Par1.txt;
fileerror: Error.log;
file0: fichier.csv;
file1: fichier1.csv;
filepsl: psl;
file3: fichier3.cnv;
file4: fichier4.csv;

fichier configuration.cpp :

#include "configuration.h"
#include <fstream>
#include
#include <sstream>


#define VALUE_NOT_SPECIFIED 0


configData::configData()
{
}
configData::~configData()
{
}


int configData::configuration(string filename)
{
char buffer[100];
string param, val;
ifstream file(filename.c_str());
if(!file.is_open()) return 1;
//ignore the first line
file.getline(buffer,100);
bool last = file.eof();
int cpt=0;
file.getline(buffer,100,':');
while(!file.eof())
{

//read parameters name
param = buffer;
//read parameters values
file.getline(buffer,100, ';');
val = buffer;
file.getline(buffer,100);

//save the data into the structure
values[val].param[param].params = param;
values[val].param[param].params = val;
cout << param << val << endl;

//read the next line
file.getline(buffer,100,':');

}
file.close();
return 0;
}



int configData::display()
{

//display the params list
map<string,configParams>::iterator paramsTK;
map<string,configVal>::iterator valuesTK;

for(paramsTK=values.begin();paramsTK!=values.end();paramsTK++)
for(valuesTK=paramsTK->second.param.begin();valuesTK!=paramsTK->second.param.end();valuesIt++)

cout << " " << paramsTK->first << " " << valuesTK->first << endl;


return 0;
}

fichier configuration.h :

#include
#include <map>



using namespace std;



class configParams
{
public:

string params;
};


class configVal
{
public:

string val; // parameters values
map<string,configParams> param;

};

class configData
{
public:

configData();
~configData();

map<string,configVal> values;


int configuration(string fname);
int display(); };

voilà le résultat avec ca ca larche j'arrive a bien parcourir mon fichier et extraire les valauer mais le probleme avec cette methode c'est que je n'arrive pas à réutiliser dans n'importe ou de mon programme autre fonction une valeur precise voulu dans le fichier txt.
Par exemple je voudrais juste la valeur type: double.

merci de votre aide svp c'est urgent en plus.

3 réponses

cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
12 nov. 2005 à 15:57
salut,

perso j'ai rien compris a ton probleme. A croire que tu t'exprimes pas assez clairement



re-dis mieux ce que tu veux faire...



allez a+
0
silverfr78021959 Messages postés 45 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 30 novembre 2005
12 nov. 2005 à 17:44
Je veuxcréer une class avec une map qui permet de parcourir un fichier .txt afin de me servire des valeur de ce fichier n'importe ou dans mon programme.
DOnc un config.cpp qui lui gere la parcour du fichier .txt plus une fonction display pour affcher les resulta, config.h qui lui renferme la class gérant la map pour le stockage des données du fichier texte. voilà
0
silverfr78021959 Messages postés 45 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 30 novembre 2005
12 nov. 2005 à 17:45
voici cer que cela doit donenr en gors mais g gérer quand dans un seule fichier ma classe ect.

#include
#include <string>
#include <map>
#include <fstream>
using namespace std;
//------------------------------------------------------------------------------
int main()
{
map<string, string> conf;
map<string, string>::iterator it;

char buffer[100];
string param, val;
ifstream file("C:\Dev-Cpp\develop\fichier.txt");
if(!file.is_open()) return 1;
//ignore the first line
file.getline(buffer,100);
bool last = file.eof();
int cpt=0;
file.getline(buffer,100,':');
while(!file.eof())
{
//read parameters name
param = buffer;
//read parameters values
file.getline(buffer,100, ';');
val = buffer;
file.getline(buffer,100);

//save the data into the structure
conf[param] = val;
//read the next line
file.getline(buffer,100,':');


}
file.close();
for (it = conf.begin(); it != conf.end(); it++)
cout << '<' << it->first << ", " << it->second << '>' << endl;
system("PAUSE");
return 0;
}
0
Rejoignez-nous