begin process at 2012 05 28 20:17:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

demande conseil class


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

demande conseil class

samedi 12 novembre 2005 à 20:45:43 | demande conseil class

silverfr78021959

salut as tous
je voudrais faire la meme chose que le programme montré ci-dessous, sauf que lamap<string... je voudrais le déclarer dans une class, dans un fichir config.h est-ce possible.
Et comment je peu acceder au valeur contenu dans ma map a partir de n'importe qu'elle autre fonction .

#include <iostream>
#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;
}

samedi 12 novembre 2005 à 21:59:36 | Re : demande conseil class

vecchio56

Administrateur CodeS-SourceS
Rien compris a ton problème... Bien sur qu'on peut mettre une map dans une classe
dimanche 13 novembre 2005 à 00:21:53 | Re : demande conseil class

silverfr78021959

Ben justement la je voudraias la map qui est au debut de programe sans uneclass mise dansun fichier confi.h et on l'appelle a partir du fichier config.cpp qui fais le traitement comme ci-dessus.
dimanche 13 novembre 2005 à 00:50:42 | Re : demande conseil class

vecchio56

Administrateur CodeS-SourceS
Franchement je crois que tu expliques très mal ton problème, en tous cas je comprends pas. Si tu pouvais te relire et écrire une phrase correcte, ce serait plus simple
dimanche 13 novembre 2005 à 01:11:33 | Re : demande conseil class

silverfr78021959

oui c'est vrai escuse moi, en faite je voudrais mettre map<string, string> conf; dansune class appelé configData par exemple. Cette class serais dans une page config.h. Une autre page config.cpp contiendrais le code suivant :

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");


De la je voudrais accéder à la map a partir de n'importe quel autre fichier par exemple traitement.cpp. qui fais parti de mon programme.
je pense avoir était plus claire merci
dimanche 13 novembre 2005 à 12:32:16 | Re : demande conseil class

vecchio56

Administrateur CodeS-SourceS
OK. Pour commencer, si tu le mets dans une classe, et si tu veux y accéder partout, tu as besoin de le mettre en static (sinon il te faudra un objet).

Dans config.h:
class configData
{
public:
  static map<string, string> conf;
  ...
};

Dans config.cpp:
map<string, string> configData::conf;

et dans ton fichier principal:
#include "config.h"
ici tu accède à la map avec configData::conf


Voila, mais pourrais tu expliquer tes motivations de vouloir mettre conf dans une classe?

Autre chose dans ton code:
ifstream file("C:\Dev-Cpp\develop\fichier.txt");
doit être remplacé par
ifstream file("C:\\Dev-Cpp\\develop\\fichier.txt");
dimanche 13 novembre 2005 à 14:18:59 | Re : demande conseil class

silverfr78021959

voici se que j'ai fais mais marche pas top top.

Fichier config.h :

#include <iostream>
#include <map>
using namespace std;
class configData
{
  public:

  static map<string,string> conf; 
  int config(string filename);
  int display();  
};

Fichier config.cpp :

#include "config.h"
#include <iostream>
#include <string>
#include <map>
#include <fstream>

using namespace std;
//------------------------------------------------------------------------------
#define VALUE_NOT_SPECIFIED 0

map<string, string> configData::conf;

int configData::config(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
    conf[param] = val;
    //read the next line
    file.getline(buffer,100,':');
 }
 file.close();
 return 0;
}

int configData::display()
{
 map<string, string>::iterator it;  
 
 for (it = conf.begin(); it != conf.end(); it++)
      cout << '<' << it->first << ", " << it->second << '>' << endl;
      cout << "essai :" << conf["fichier"] << endl;
 return 0;
}

fichier principal :

#include "config.h"
#include <iostream>
#include <stdlib.h>

using namespace std;
configData conf;

int main(int argc, char *argv[])
{
 
  conf.config("C:\\Dev-Cpp\\develop\\fichier.txt");
  conf.display();
   
  return 0;
}

voilà si vous pouvezme dire o cela coince. Merci

dimanche 13 novembre 2005 à 14:47:32 | Re : demande conseil class

vecchio56

Administrateur CodeS-SourceS
A toi de dire ou a coince, quelle est l'erreur?
dimanche 13 novembre 2005 à 15:28:22 | Re : demande conseil class

silverfr78021959

Justement si je suis ici c'est que je sais pas lol, a toi de me dire jepense que cela vient de ca conf.config("C:\\Dev-Cpp\\develop\\fichier.txt");
  conf.display();


il me met pas de message d'erreur, juste que ca lance la console et refaerme aussi tot.

dimanche 13 novembre 2005 à 15:47:14 | Re : demande conseil class

vecchio56

Administrateur CodeS-SourceS
Ca c'est normal, ajoute un system("PAUSE"); à la fin sinon tu n'a pas le temps de voir ce qui est écrit.
Ensuite pour savoir d'ou vient le problème, ajoute des traces dans la console. Par exemple:
ifstream file(filename.c_str());
if(!file.is_open())
{
  cout << "Impossible d'ouvrir le fichier" << endl;
  return 1
}

Puis tu peux afficher directment chaque ligne lue, ainsi tu verra rapidement s'il y a un problème de lecture.
Si tu as un debugger, ce serait intéressant de l'utiliser

1 2

Cette discussion est classée dans : buffer, file, include, conf, getline


Répondre à ce message

Sujets en rapport avec ce message

execution de programme [ par silverfr78021959 ] bonjour a tous, voilà j'ai un probleme quand je veux executer mon prog sur devc++ il m'ouvre la fenteree dos mais la referme aussi tot je peux donc pa probleme réduoération de variable contenu dans une map [ par silverfr78021959 ] bonjour.Voilà j'aurais juste une petite question à poser concernant un petit programme. En faite g créer un une calsse avec une fonction ect... cela f librairie [ par infodaoudi ] Bonjour,quelle est l'équivalent de la bibliothéque #include en visual C++. je compile un programme en visual C++ et je me trouve avec l'erreur: Canno lecture fichier binaire [ par SesechXP ] Salut !Je cherche à lire des données dans un fichier binaire afin de les réafficher en ascii.Voici la tête du fichier à lire @10004A 75 6C 69 65 6E FF VC++ et erreurs de compilations :( [ par morpheus83z ] Bonjour tout le monde !Voilà, je ne comprends pas, j'ai un programme qui ne veut pas se compiler et je désespère vraiment ...#include // iostream.h e prob avec include<bzlib.h> [ par progrima ] j'ai télécharger un code de codes sources qui fait de la compréssion , mais en l'exécutant j'ai eut l'erreur suivante :Cannot open include file: 'bzli Lecture d'un fichier et affichage de balises [ par SpiritAnghell ] Bonjour;Le programme suivant est censé extraire les balises d'un fichier xml et les afficher une par une:#include #include #include #include #include [socket et api win]recevoir et envoyer en meme temps [ par shadow1779 ] Bonjour je me suis fais un petit programme irc qui me servira de bot pour auto-op des personne ou d'autre taches diverses, le client aura une boite de probleme avec getline istringstream dans un for [ par riminii ] bonjour je suis en train de créer un programme lisant un lsystem et en resort des coordonnées...J'en suis au début cad la lecture du fichier lsystem:c Code source incomplet en C [ par Sneakito ] Je suis un débutant, or j'ai un programme assez complexe à réaliser(pour moi), voici ce qu'il doit faire:Remplacer un mot dans une page html (hors bal


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales