[C++] pb de lecture fichier [newbie need help]

pb de lecture fichier [newbie need help] [C++] - Programmation

Marsh Posté le 11-03-2002 à 20:06:24    

voila, désole de vous embêter encore avc mes questions bêtes mais g pondu le chef d'oeuvre suivant et ca marche pô !!!
 
void Pdb_viewDoc::addMolecule(QString tmpfile){
mol = new Molecule();         //molecule
Atome atomes[5000];        //chaine alpha, a remplacer a terme par des aa
char line[80];         // ligne tampon
QFile ifp(tmpfile)
char *curs = NULL,*match = NULL;
int i = 0,cpt = 0;
float coord;
 
 
 if(ifp.open(IO_ReadOnly)){
   while (ifp.readLine(line,80)) {
     if((curs = strstr(line,"ATOM" ))){   //reperage ligne ATOM
       cpt ++;
       match = strtok(curs," " );  //decoupage de la ligne
       
       for(i = 0;i < 7;i ++){
  match = strtok(NULL," " );
   
  switch(i) {
  case 2 :
    (atomes[cpt]).setType(match);
    cout << "trouve : " << match << endl;
    break;
  case 4 :
    cout << "trouve : " << match << endl;      
    sscanf(match,"%f",&coord);
    (atomes[cpt]).set_x(coord);
    break;
     
  case 5 :
    cout << "trouve : " << match << endl;      
    sscanf(match,"%f",&coord);
    (atomes[cpt]).set_y(coord);
    break;
     
  case 6 :
    cout << "trouve : " << match << endl;      
    sscanf(match,"%f",&coord);
    (atomes[cpt]).set_y(coord);
    break;      
  }//fin du switch
       }//fin du for
       
     }//fin du if (ligne ATOM)
     
   }//fin du while
   if(ifp.atEnd()){
     ifp.close();  
     cout << "fichier ferme en lecture" << endl;
   }  
 }//fin du if (ouverture fichier)
 else{
   cout << "pb d'ouverture du fichier " << tmpfile << endl;
 }
}//fin de fonction
 
 
le symptôme :  
le fichier est entierement lu et les infos ecrites ds le terminal comme prevu...
 
mais le fichier n'est pas ferme donc l'application tourne dans la choucroute !!!
 
comment est-ce que c'est-t-il qu'on ferme ce fichu fichier ???
 :fou:  
 
je note que j'ai fait un #include <qfile.h>
 
mrci beaucoup pour votre aide car là j'avance plus du tout !!!
 :sweat:

 

[jfdsdjhfuetppo]--Message édité par ramirez--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 11-03-2002 à 20:06:24   

Reply

Marsh Posté le 13-03-2002 à 13:35:44    

Je connais pas encore le C++, mais en remplaçant  
if(ifp.atEnd())
{
    ifp.close();
}  
par
 
ifp.close();  
 
ça fonctionnerait pas mieux ?
Si la lecture est terminée, autant le fermer (ce n'est pas le fait d'arriver à la fin du fichier qui "oblige" à le fermer, c'est le fait de ne plus avoir besoin d'y accéder).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed