Lecture fichier C

Résolu
ayarikhaoula Messages postés 126 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 15 août 2011 - 12 avril 2011 à 18:25
ayarikhaoula Messages postés 126 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 15 août 2011 - 13 avril 2011 à 09:52
salut tout le monde je souhaite développez une fonction en c :
qui lit un fichier ligne par ligne et stoque son contenu dans une chaine de carractère.
Mon problème c'est que je trouve un certain bloque de mon fichier qui se répète lor de l'affichege de la chaine:voici mon code





int AjoutFF(char *CheminFichier)//
{
char *res=(char *)malloc(1000000 *sizeof(char));
char *ch=(char *)malloc( 1000000 *sizeof(char));
//res[0]='\0';
char *ChercheUs=" chainetest";


FILE *fic;

char ligne_lue[512];
char *recherche1;
fic = fopen(chemin, "r"); // ouvrir en lecture
while (!feof(fic))

{
fgets(ligne_lue, 512, fic);
recherche1=strstr(ligne_lue,"chaine de test2");
if(!recherche1)
{

res=strcat(ch,ligne_lue);

res=strcat(ch,"\n");

}
else
{

res=strcat(ChercheUs,ch);

}
}

free(res);
free(ch);
free(ChercheUs);
free(chemin);
free(recherche1);
return 1;
}

Merci pour tout aide.
Cordialement

2 réponses

ayarikhaoula Messages postés 126 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 15 août 2011
13 avril 2011 à 09:52
salut
merci pour ton effort
le problème c au niveau de la taille de la ligne lu.il ma fallut l'allouer plus de mémoire (512 est insuffisante car dans le fichier en question il y a des lignes dont la taille est très grand).
3
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
12 avril 2011 à 21:08
salut,

while (fgets(ligne_lue, 512, fic))
{
recherche1=strstr(ligne_lue,"chaine de test2");
if (!recherche1)
{
res=strcat(ch,ligne_lue);
res=strcat(ch,"\n");
}
else
{
res=strcat(ChercheUs,ch);
}
}

@++
0
Rejoignez-nous