pb de lecture fichier [newbie need help] [C++] - Programmation
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).
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 ???
je note que j'ai fait un #include <qfile.h>
mrci beaucoup pour votre aide car là j'avance plus du tout !!!
[jfdsdjhfuetppo]--Message édité par ramirez--[/jfdsdjhfuetppo]