cs_mohken
Messages postés8Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 6 octobre 2005
-
23 sept. 2005 à 08:11
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011
-
23 sept. 2005 à 18:43
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 !!
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 23 sept. 2005 à 15:06
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
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011 23 sept. 2005 à 18:43
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.