Comparer deux fichiers & ecrire la difference dans un 3ème fichier.

zakadame Messages postés 3 Date d'inscription lundi 26 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011 - 26 sept. 2011 à 17:17
zakadame Messages postés 3 Date d'inscription lundi 26 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011 - 28 sept. 2011 à 01:25
bonjour,


debutant en programmation en c, j'ai besoin de votre aide.

je cherche un creer un petit programme pour comparer deux fichier txt et ecrire la difference dans un troisiemme fichier.
j'ai fai un petit programme, j'arrive a faire la comparaison mais il ecrit plusieur fois la difference dans mon troisiemme fichier.

en gros ce que je cherche a faire c'est:
je lis la premiere ligne de mon premier fichier
et je la compare avec toute les ligne de mon deuxiemme fichier
si la ligne de mon fichier1 et != de toute les ligne de mon fichier2 je l'ecris dans mon fichier 3
et je continue avec la seconde ligne de mon fichier1 etc etc etc.......

voila ce que j'ai deja fait:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()

{

FILE *resultats, *impaire, *final;

printf("Debut du programme\nPatientez...\n\n");


char s[100], s2[100],s3[100];

char* filename1 = "resultats.txt";

char* filename2 = "impaire.txt";

char* filename3 = "final.txt";

resultats = fopen(filename1, "r" );

if (resultats == NULL)

{

printf("Unable to open file %s\n", filename1);

return 1;

}



impaire = fopen(filename2, "r" );

if (impaire == NULL)

{

printf("Unable to open file %s\n", filename2);

return 1;

}

final = fopen(filename3, "w" );


if (final == NULL)

{

printf("Unable to open file %s\n", filename3);

return 1;

}




while (fgets(s, 100, resultats) != NULL)

{

rewind(impaire);

while (fgets(s2, 100, impaire) != NULL)

{
printf ("%s",s);
printf ("%s\n",s2);



if(strcmp(s2, s) !=0)
{
strcpy(s3,s);
fprintf(final,"%s",s3);

}




}



}






fclose(resultats);

fclose(impaire);

fclose(final);

return 0;

}


help me please merci

4 réponses

cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 1
26 sept. 2011 à 18:58
Salut, utilise la balise code ça fait pas beau sinon et on est obligé de le copier-coller dans notre éditeur pour comprendre
Pourquoi ce rewind(impaire) à chaque fgets du resultats ?
Les deux fichiers ne doivent-ils pas ouvrir la même partie des fichiers repectifs ?
Commente-le pour voir
0
zakadame Messages postés 3 Date d'inscription lundi 26 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011
27 sept. 2011 à 01:56
merci pour ta reponse tupac,

sorry pour le code mais je suis novice sur se site.

pour le "rewind", cela me permet de revenir au debut de mon fichier2 afin de faire la comparaison avec toute les lignes.
je ne sais pas si c'est clair ou pas........
0
cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 1
27 sept. 2011 à 09:07
Oui mais si tu reviens au début a chaque fois, tu compares le début du fichier2 (100 premiers chara) avec tout le contenu de l'autre c'est vraiment ce que tu veux?
0
zakadame Messages postés 3 Date d'inscription lundi 26 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011
28 sept. 2011 à 01:25
oui, c'est cela. comparer toute mes lignes du fichier 1 avec ceux du fichier2.
0
Rejoignez-nous