IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

lecture de fichier via une fonction d'analyse


Sujet :

C++

  1. #1
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut lecture de fichier via une fonction d'analyse
    bonjour,

    je veux lire un fichier via une fonction qui analyse 5 lignes à la fois.

    J'ai le code suivant :

    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
    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
    void Fenetre::recupInfo(ifstream& fimages, std::string& nom, ImageInfo::cote& dr, ImageInfo::cote& gche, ImageInfo::cote& ht, ImageInfo::cote& ba)
    {
    	getline(fimages,nom);cout << nom;
    	int v;
    	fimages >> v; cout << v; dr=ImageInfo::int2Cote(v);
    	fimages >> v; cout << v; gche=ImageInfo::int2Cote(v);
    	fimages >> v; cout << v; ht=ImageInfo::int2Cote(v);
    	fimages >> v; cout << v; ba=ImageInfo::int2Cote(v);
    }
     
    bool Fenetre::lectureFichierDeConf()
    {
    	// récupération des images
    	ifstream fimages(Fenetre::fichierImages.c_str());
    	long debut=fimages.tellg();
    	bool err=false;
    	if (!fimages.fail())
    	{
    		// on compte le nombre de lignes = le nombre d'images
    		string ligne;
    		while(getline(fimages,ligne))
    			nbImages++;
    		fimages.seekg(debut,ios_base::beg);
     
    		// On alloue
    		if (nbImages>0)
    		{
    			try 
    			{
    				images=new ImageInfo[nbImages];
    			}
    			catch(std::bad_alloc&)
    			{
    				cout << "Erreur d'allocation" << endl;
    			}
    		}
    		fimages.close();
    	}
     
    	fimages.open(Fenetre::fichierImages.c_str());
    	if (!fimages.fail())
    	{
    		// On charge les images
    		int i=0;
    		string nom;
    		ImageInfo::cote dr, gche, ht, bas;
    		while(!fimages.eof())
    		{
    			recupInfo(fimages,nom,dr,gche,ht,bas);
    			//images[i++].set(nom);
    			nom.erase();
    		}
    		fimages.close();
    		err=true;
    	}
     
    	return err;
    }
    mais recupInfo() ne me donne pas de valeur dans ses paramètres : nom, dr, gche, ht et bas.

  2. #2
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 330
    Points : 85
    Points
    85
    Par défaut
    Pas trouvé le bug mais quelques pistes :

    if (!fimages.fail()) > d'habitude je mets if (fimages.is_open())

    while(!fimages.eof()) > vérifier que eof() renvoie bien true quand c'est fini et false au départ

    getline(fimages,nom) > tester le retour de la fonction

    [Edit]

    Ah si j'ai peut-être trouvé le bug en fait...
    Le tellg() ou le fimages.seekg(debut,ios_base::beg);
    te mets la stream dans un état "fail" il faut effacer le flag failed avec un clear() sur la stream

  3. #3
    Débutant Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Points : 162
    Points
    162
    Par défaut
    c'était ça.

    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/09/2008, 12h46
  2. Réponses: 7
    Dernier message: 30/05/2006, 12h09
  3. [LG]Lecture de fichier avec une adresse internet
    Par forbin dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2005, 20h00
  4. [PHP-JS] pb lecture script php dans une fonction au démarrage
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2005, 16h07
  5. [STRUTS][DOWNLOAD] download d'un fichier via une action
    Par FreshVic dans le forum Struts 1
    Réponses: 3
    Dernier message: 16/04/2004, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo