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

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

PB de gestion de fichier!!!!


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

PB de gestion de fichier!!!!

vendredi 16 mai 2003 à 15:23:42 | PB de gestion de fichier!!!!

kobee12

J'ai un probleme avec la boucle qui se trouve en dessous ( do ... while(!feof(fichier)) ).
quand on arrive a la fin du fichier il fait une erreur. il n'arrive a lire la fin du fichier. Quand je rentre dans le if(), il n'y a pas de pb, ca marche bien grace au break; qui evite d'aller jusqu'a la fin du fichier.
si quelqu'un sait pourquoi j'ai une erreur, ca serait cool qu'il m'explique.
merci kobee12.
voici la boucle :

fichier = fopen("essai.txt", "r");

rewind(fichier); //reposition au debut du fichier
/* recuperation des donnees pour une date donnee*/
do
{
fgets(buf,200,fichier); //lecture d'une ligne du fichier
//decoupage de la ligne recuperee
sscanf(buf,"%d %d %[^\n]%s",&n_jour,&n_mois,msg);
if((n_jour==num_jour) && (n_mois==mois))
{
/*decoupage des enregistrements*/
i=0;
Info[i]=strtok(msg,"Ï");
for(i=1;i<12;i++)
{
Info[i]=strtok(NULL,"Ï");
}
break; // on sort de la boucle
}
}while(!feof(fichier)); //tant qu'on n'est pas a la fin du fichier
fclose(fichier);
/* fin recuperation des donnees*/
vendredi 16 mai 2003 à 23:41:06 | Re : PB de gestion de fichier!!!!

NitRic

fichier = fopen("essai.txt", "r");

// Cela peut être utile parfois de vérifier si un fichier est belle et bien ouvert! Ca évite de lire de 'l'aire' et d'avoir des erreurs =P
if ( fichier != NULL ) {

// Pas besoin de mettre le curseur au début car à l'ouverture d'un fichier, le curseur est déjà au début, alors inutile.
//rewind(fichier); //reposition au debut du fichier
/* recuperation des donnees pour une date donnee */
// Ici ce n'est pas inutile, si le fichier est vide dès le départ, on ne rentre pas dans la boucle, plutôt pratique!

while ( !feof(fichier) ) { //tant qu'on n'est pas a la fin du fichier

fgets(buf,200,fichier); //lecture d'une ligne 'de 200 caractères' du fichier

//decoupage de la ligne recuperee
sscanf(buf,"%d %d %[^\n]%s",&n_jour,&n_mois,msg);

if ( (n_jour == num_jour) && (n_mois == mois) ) {

/* decoupage des enregistrements */
// Ici 'i' vaut toujours 0 au départ alors pas besoin du 'i' dans:
Info[0] = strtok(msg,"Ï");

for ( i = 1; i < 12; i++ ) {

Info[i]=strtok(NULL,"Ï");

}

break; // on sort de la boucle

}

}

fclose(fichier);

}



Pour ce qui est de ton for() et compagnie, tu pourrais te faire une petite 'routine' qui fait tout ca, bref c'est mon avis perso, le code serai plus 'claire' si on veut. Bon bien c'est tout!



~(.:: NitRic ::.)~






-------------------------------
Réponse au message :
-------------------------------

> J'ai un probleme avec la boucle qui se trouve en dessous ( do ... while(!feof(fichier)) ).
> quand on arrive a la fin du fichier il fait une erreur. il n'arrive a lire la fin du fichier. Quand je rentre dans le if(), il n'y a pas de pb, ca marche bien grace au break; qui evite d'aller jusqu'a la fin du fichier.
> si quelqu'un sait pourquoi j'ai une erreur, ca serait cool qu'il m'explique.
> merci kobee12.
> voici la boucle :
>
> fichier = fopen("essai.txt", "r");
>
> rewind(fichier); //reposition au debut du fichier
> /* recuperation des donnees pour une date donnee*/
> do
> {
> fgets(buf,200,fichier); //lecture d'une ligne du fichier
> //decoupage de la ligne recuperee
> sscanf(buf,"%d %d %[^\n]%s",&n_jour,&n_mois,msg);
> if((n_jour==num_jour) && (n_mois==mois))
> {
> /*decoupage des enregistrements*/
> i=0;
> Info[i]=strtok(msg,"Ï");
> for(i=1;i<12;i++)
> {
> Info[i]=strtok(NULL,"Ï");
> }
> break; // on sort de la boucle
> }
> }while(!feof(fichier)); //tant qu'on n'est pas a la fin du fichier
> fclose(fichier);
> /* fin recuperation des donnees*/


Cette discussion est classée dans : fichier, fin, pb, boucle, jour


Répondre à ce message

Sujets en rapport avec ce message

Pb de compilation [ par Cyberboy2054 ] Salut J' ai un piti problème de compilation en C++Quand j' ai terminé mon programme (un aplication console)je teste mon programme depuis le compilateu pb avec Fopen [ par Arrakis ] Bonjour, Je fais un programme en C avec DirectX ,a un moment je dois ouvrir un fichier pour recuperer des données mais fopen echoue ( sa valeur de r création de fichier [ par freeze ] Salut à tous,je voudrais créer un fichier qui reprendrai la date du jourPar exemple 0110022.zip pour un fichier zip du 01/10/2002En fait je voudrais é vc++ : pb d'ecriture dans fichier taille sup a prévu [ par adidmamah ] g un groooooo pb qui m'épate sincerementj'ecris dans un fichier en utilisant un structure : struct data { char nom[30]; PB avec la gestion de fichier dans une de mes fonctions!!!! [ par kobee12 ] J'ai cree deux fonctions qui me permettent de charger et d'enregistrer dans un fichier selon l'ecriture dans le fichier de la maniere suivante : jour pti pb de thread [ par sena ] Bonjour,j'ai un prog dans lequel je créé un thread.Ce thread tourne en boucle. Dedans j'ai une boucle While(true)Je voudrais savoir comment je pourrai Pb Fichier Html Help .chm [ par crocejf2000 ] Salut a tous,J'ai créé un fichier d'aide .chm qui fonctionne tres bien quand on double click dessus, il s'ouvre. Mais quen je l'appel de mon prog, il pb visual c++ fichiers [ par pichu ] dans une fonction de visual j'ouvre un fichier fstream en lecture. Ce fichier contient des informations. Mais ca me renvoie true quand j'affiche le ré traitement d'un fichier txt [ par sylvain ] Bonjour,Je doit effectuer un traitement sur un fichier txt.Je reçoit un fichier txt sous cette forme :// début fichierdébut annonce..........@ fin ann fichier:Pb récuperation données [ par jagxx ] Bonjour,kan je récupère les données d'un fichier ds un tableau de structures avec:while( ! fContact.eof()){fContact >> elem->nom >> elem->tel;temp[i].


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,172 sec (4)

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