Difference entre deux fichiers

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 9 mars 2005 à 13:33
cleter Messages postés 92 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 15 mai 2006 - 9 mars 2005 à 20:33
Bonjour a tous,

voila je viens de constater quelque chose de bizar et j'aimerais que
m'éclaireriez sur un phénoméne que je viens de constater. en fait voici
un code qui compare deux fichiers:



// lecture des deux fichiers

while(!feof(f2) && !feof(f2))

{

// lecture d'un caractere dans chaque fichier

c1 = fgetc(f1);

c2 = fgetc(f2);



cpt++; // 1 caractere lu en plus



// si on trouve un endroit différent

if(c1 != c2)

diff++; // une difference en plus

}



ce code marche parfaitement avec un fichier texte, seulement
dernierement, j'ai essayer de comparer deux fichiers .exe ou j'ai
modifier un seul endroit à l'aide d'un éditeur hexadecimal et la
lorsque j'utilise le code ci-dessus, il me dit que les deux fichiers
sont identiques, alors qu'il ne le sont pas !

Voila, est-ce que quelqu'un serait pourquoi?

Merci par avance.
Bob...

"La chance accorde ses faveur aux esprits avertis..."

5 réponses

Vulpetrus Messages postés 70 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 21 décembre 2005
9 mars 2005 à 13:58
Le problème ne serait pas dû au fait que tu utilise la commande fgetc() qui est censée te renvoyer un caractère ascii ?

Alors que ton fichier exe est codé en binaire.

Si ça se trouve au premier caractère ascii, tu sort de la boucle
while(!feof(f2) && !feof(f2))

voilà...

ton avis ...
0
cleter Messages postés 92 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 15 mai 2006
9 mars 2005 à 17:01
Bein je confirme, fgetc() c'est pour des fichier texte. Il y a quelque
tps, j'avai du faire un ptit programme qui compressait les fichiers, il
marchai nickel sur les fichiers textes, mais pas pour les autres.
Pourtant j'ouvrai mes fichier en binaire etc. je comprenai pas... Et
tout venai du fgetc(); donc change par un fscanf ou autres (ca fai
longtps que j'ai pas fait de C).

Voila, en espérant t'avoir aidé.
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
9 mars 2005 à 17:13
ok, je vaus donc essayer avec un scanf :)
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 octobre 2010
9 mars 2005 à 18:32
Euh plutot un fread qu'un fscanf...C'est mieux pour du binaire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cleter Messages postés 92 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 15 mai 2006
9 mars 2005 à 20:33
Oui c'est mieu, mais sur le coup yavais que le fscanf qui m'étai passé par la tete désolé
0
Rejoignez-nous