Pourquoi tu ne ferai pas une copie de la ligne dans une variable temporaire et tu la copierai dans le fichier_à_copier.
Je vais te mettre ce que j'aurais mis moi. Sachant que j'ecrirais les fonction après le code principal. Tu n'auras plus qu'a ecrire temporaire dans ton autre fichier.
FILE *fd_o;
char temporaire[500];
char ligne[2000];
if (DBI_ouverture_fichier(&fd_o, " nom_fichier_à_copier", "r") == FALSE)
return(FALSE); /*tu ouvres le fichier voir fonction plus bas */
{
while ( (!feof(fd_o)) && (fgets(ligne, sizeof(ligne), fd_o) != NULL) ) /* tu lis ligne a ligne */
{
if(strncmp(DBI_cherche_chaine(ligne, "resultat") == TRUE )
{
strcpy(temporaire, ligne);
}
}
}
/* *******************************************************
JO le 24/04/06
******************************************************* */
long CFonction:

BI_ouverture_fichier(FILE **fic, char *nom_fichier, char *mode_fichier)
{
if ((*fic = fopen(nom_fichier, mode_fichier)) == NULL)
{
return(FALSE);
}
return(TRUE);
}
/* *******************************************************
JO le 24/04/06
******************************************************* */
long CFonction:

BI_cherche_chaine(char *chaine, char *rech)
{
char *token;
char rech_tmp[2000];
int flag;
int lng_rech;
int lng_rech_1;
int lng_chaine;
flag = 0;
lng_rech = (int)strlen(rech);
lng_rech_1 = lng_rech - 1;
if (lng_rech == (size_t) 0) return(TRUE);
if (rech[0] == '^') flag = 1;
if (rech[lng_rech_1] == '$') flag = 2;
switch(flag)
{
case 0:
token = strstr(chaine, rech);
if (token == (char *)0) return(FALSE);
break;
case 1:
/* commence par */
strcpy(rech_tmp, rech +1);
if (strncmp(chaine, rech_tmp, lng_rech_1)) return(FALSE);
break;
case 2:
/* finit par */
strcpy(rech_tmp,rech);
rech_tmp[lng_rech_1] = 0;
lng_chaine = (int)strlen(chaine);
if (lng_chaine < lng_rech_1) return(FALSE);
if (strcmp(chaine + lng_chaine - lng_rech_1, rech_tmp)) return(FALSE);
break;
}
return(TRUE);
}
N oublie pas de fermer les fichiers à la fin
Partager