Comparaison de fichier en C

Signaler
Messages postés
8
Date d'inscription
vendredi 9 avril 2004
Statut
Membre
Dernière intervention
6 octobre 2005
-
Messages postés
127
Date d'inscription
mardi 23 août 2005
Statut
Membre
Dernière intervention
9 mai 2011
-
Bonjour,

Est ce que quelqu'un peut m'aider?
Jeune développeur LabWindows ( environnement C), je souhaite effectuer une comparaison de fichier mais je coince sérieusement.
Est ce que je peux introduire une commande DOS (comp, par exemple) pour le faire ?
Si oui comment l'introduire et récupérer le résultat ?

Si quelqu'un pouvait m'aider ça serait vraiment sympa !!

Merci d'avance

4 réponses

Messages postés
127
Date d'inscription
mardi 23 août 2005
Statut
Membre
Dernière intervention
9 mai 2011

Ne serait-ce pas plus simple de créer toi même la fonction ?

il suffit d'ouvrir les 2 fichiers, et de comparer bit à bit... non ?
Messages postés
8
Date d'inscription
vendredi 9 avril 2004
Statut
Membre
Dernière intervention
6 octobre 2005

OK je vais essayer me lançer, je te remercie!!!
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Comparaison bit à bit, excusez moi l'expression, mais ca pue du cul.
Ce que je vais te dire n'est certainement le sommum de l'optimisation, mais au lieu d'effectuer une comparaison bit a bit, tu compares 4 octets par 4 octets. D'ailleurs, bit a bit, implique que tu 'decortiques' chaque caractere, donc je pense que dark_naruto25 voulait dire octet par octet. Je m'explique :

tu vas ouvrir tes fichiers, les lire et placer leurs contenus dans un buffer, ensuite tu feras un truc du genre :

for (...++i) {
if (szBuffer1[i] != szBuffer2[i]) PAS PAREIL;
}

A la place, tu fais ca :

for (...i += 4) {
if (*((DWORD *)(szBuffer1 + i)) != *((DWORD *)(szBuffer2 + i))) PAS PAREIL.
}

Bien sur, par avance, s'occuper de traiter les cas comme taille de fichiers non egaux...etc
Ensuite, faire attention que taille des fichiers est un multiple de 4 ! Sinon, a toi de trouver comment faire ;)

Enfin voila, c'etait juste une parenthese pas bien necessaire, mais qui je pense pouvait s'averer utile (4 x moins de comparaisons, c'est quand meme bien nan ?).

Voila, si t'as besoin d'aide, n'hesite pas et pis bonne continuation

+2(p - n)
Messages postés
127
Date d'inscription
mardi 23 août 2005
Statut
Membre
Dernière intervention
9 mai 2011

désolé AlexMAN d'avoir perturber ton sens de l'odorat...
Etant donné que j'étais en cours, je suis allé un peu vite. Je voulais biensur dire une comparaison par octets, comparer des fichiers de quelques MegaOctet bits par bits serait effectivement un peu long.
Sans oubliez que commencer par comparer les tailles des fichiers pourrais déjà gagner du temps, si elles sont différentes alors c'est sûr que les fichiers le seront aussi.