Soft en delphi : comparateur de fichiers - Delphi/Pascal - Programmation
Marsh Posté le 16-01-2003 à 13:56:57
C rapide ? (optimisé j'entend )
ya les sources ?
Marsh Posté le 16-01-2003 à 14:09:24
Sympa
On peut voir les sources, juste pour voir comment tu as implémenté ton soft
Marsh Posté le 16-01-2003 à 15:43:37
Y'a un lien mais c'est juste pour l'exe
Marsh Posté le 16-01-2003 à 15:44:48
Si y a pas les sources je vois pas fort l'intérêt de mettre le topic ici, d'autant plus qu'il y a déjà le même topic sur Soft & Réseaux
Marsh Posté le 17-01-2003 à 08:48:05
antp a écrit : Si y a pas les sources je vois pas fort l'intérêt de mettre le topic ici, d'autant plus qu'il y a déjà le même topic sur Soft & Réseaux |
non, y'a pas les sources... J'ai essayé d'optimiser les fonctions lisants les fichiers puis les comparants (octet par octet). J'ai utiliser les classes TStreamFile pour la lecture des fichiers et TStreamMemory pour la comparaison. Je charge qu'une fois le fichier à comparer et je charge au fur et à mesure les autres fichiers puis je passe au fichier suivant à comparer, etc. Si y'a des moyens plus rapides (autres qu'une routine en asm), je suis preneur...
Marsh Posté le 17-01-2003 à 09:46:50
tu charges tout le fichier en même à chaque fois et tout l'autre fichier à comparer ?
Marsh Posté le 17-01-2003 à 10:25:30
rufo a écrit : |
Un meilleurs moyen qu'un algo en n^2 dans lequel chaque étape consiste à charger un fichier en mémoire, à le comparé à un autre puis a libéré la mémoire ? Naaaan tu ne trouveras probablement pas.
Bien sur, j'aurais peut-être pu t'aider mais j'aime pas ton site
Marsh Posté le 17-01-2003 à 10:27:41
Kristoph a écrit : |
rancunié va Je suis un gentil pourtant lol...
Marsh Posté le 17-01-2003 à 10:28:54
[SDF]Poire a écrit : tu charges tout le fichier en même à chaque fois et tout l'autre fichier à comparer ? |
je charge une fois le fichier à comparer puis un à un tous les autres fichiers pour les comparer au premier...
Marsh Posté le 17-01-2003 à 10:50:41
euh... j'imagine la comparaison de fichier VOB ou de films (d'images ghost aussi) ça pourrait être drôle....
Marsh Posté le 18-01-2003 à 12:33:30
[SDF]Poire a écrit : euh... j'imagine la comparaison de fichier VOB ou de films (d'images ghost aussi) ça pourrait être drôle.... |
oui, j'y ai réfléchi... A priori, vu que j'utilise la ram, j'avais fait un test qui me fait penser que Windows fait du swap quand je demande d'allouer plus de mémoire qu'il y en a de disponible...
Marsh Posté le 18-01-2003 à 13:00:12
Allez, voici un premier truc pour toi :
"La taille du fichier".
Marsh Posté le 18-01-2003 à 13:12:50
rufo a écrit : |
T'as combien de swap ? un VOB ça fait 1Go si tu copare un VOB à un autre VOB tu utilises 2Go de mem !!!!!!!!!!!!! (ça plantera avant je pense )
Marsh Posté le 18-01-2003 à 19:26:09
[SDF]Poire a écrit : |
à mon avis, pour comparer des vob, je crois que ça ira plus vite de les lancer et de regarder la première minute plutôt que d'utiliser mon soft...
Marsh Posté le 18-01-2003 à 23:56:13
C T un exemple
les buffers C bien
Marsh Posté le 20-01-2003 à 09:36:03
[SDF]Poire a écrit : C T un exemple |
oui, mais comment je fais pour lire qu'une seule fois le fichier à comparer avec els buffers?
Marsh Posté le 20-01-2003 à 10:44:24
tu bufferises les 2
Marsh Posté le 20-01-2003 à 14:48:55
[SDF]Poire a écrit : tu bufferises les 2 |
j'ai un pb : je passe à la fonction chargée de faire la comparaison un pointeur sur le buffer du fichier "source" entièrement chargé (à comparer aux autres fichiers) et le nom du fichier à comparer...
Marsh Posté le 20-01-2003 à 17:19:14
Pour ceux qui auraient déjà téléchargé mon soft, j'ai mis une MAJ de mon soft car la fonction STOP n'était pas compètement implémentée. Désolé, un petit oubli...
Marsh Posté le 21-01-2003 à 10:29:50
je pense à un truc, si tu dois juste retrouver des doublons (et non pas trouver les doublons d'un fichier précis), ça serait pas plus facile de faire une liste de checksum (md5 ou autre), de trier cette liste par ordre alphabétique, puis de comparer vraiment les fichiers sont les checksums sont identiques ?
Marsh Posté le 21-01-2003 à 11:39:16
Ce truc m'interresse car j'ai une collection de fichiers mp3 dont certains sont des doublons. Mais si ca tourne pas sous Linux je n'en veux pas
Moi je ferais ça comme ça :
- obtenir une liste de tous les fichiers à traiter+leur taille
- grouper les fichiers par paquets de même taille
- calculer les md5 sum de tous les fichiers qui sont dans un groupe de cardinal > 1
Et pour finir :
- même checksum md5 = même fichier
Ou
- "mode complet" qui va vraiment tester le contenu des fichiers qui ont le même checksum md5
Dans le cas ou tous les fichiers sont identiques, cette méthode est plus lente que la tienne
Marsh Posté le 21-01-2003 à 12:30:04
Kristoph a écrit : Ce truc m'interresse car j'ai une collection de fichiers mp3 dont certains sont des doublons. Mais si ca tourne pas sous Linux je n'en veux pas |
D'ailleurs, j'ai fini de le faire en Python, voici le code
Code :
|
Marsh Posté le 22-01-2003 à 08:59:23
Effectivement, je fais bien une liste des fichiers à traiter (nom du fichier + taille) et je les regroupe par taille (tri croissant) puis je compare le contenu (pas de md5). Ca pourrait aller plus vite avec le md5...
Par contre, pour ma fonction de détection d'un fichier inclu dans un autre, le md5, ca marche?
ex: un fichier contient uniquement la chaîne "abcd" et un autre, uniquement la chaîne "abcdef" -> le premier fichier est inclus dans le second.
Marsh Posté le 16-01-2003 à 12:14:32
Si ça en intéresse certains, j'ai développé un petit soft qui permet de trouver les fichiers identiques ayant ou pas une même extension) dans un répertoire et ses sous-répertoires. De plus, il y a un mode de comparaison permettant de dire si un fichier est inclu dans un autre (du point de vu du contenu). Pour télécharger, c'est ici :
http://www.2001-space-odyssey.net/~chris/
ou http://chris.jav.chez.tiscali.fr
menu "Programmation", rubrique "SameFilesDetector"
@+