Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1148 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Quel langage pour faire ça ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quel langage pour faire ça ?

n°619725
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 09:50:25  profilanswer
 

Je voudrais faire un programme qui recherche les fichiers en double sur un disque dur, parce que j'en ai une très grande qté. J'avais tout d'abord pensé à faire tout bêtement un programme en C++ qui parcourt récursivement le disque en enregistrant dans un fichier texte les adresses des fichiers avec leur taille exacte, puis parcourir ce fichier et faire une comparaison bit à bit de tous les fichiers de taille identique. Mais ça me semble très lourd à la fois en temps d'éxecution et de taille mémoire, et je me demande si il ne faudrait pas mieux que j'utilise un langage un peu plus évolué avec une base de donnée :??:
Qu'est-ce que vous en pensez ?

mood
Publicité
Posté le 23-01-2004 à 09:50:25  profilanswer
 

n°619735
kadreg
profil: Utilisateur
Posté le 23-01-2004 à 09:54:21  profilanswer
 

Que pour ton parcours, calcule le md5 pour chaque fichier, c'est plus rapide pour comparer ensuite :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°619765
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 10:15:33  profilanswer
 

C'est une bonne id. Cependant est-ce que ça n'est pas trop pénalisant en temps d'éxecution ? Parce que calculer le md5 (ou tout autre hash) de milliers de petits fichiers, c'est ptet bcp bcp plus long que de prendre simplement leur taille, non ?

n°619770
Kristoph
Posté le 23-01-2004 à 10:17:01  profilanswer
 

J'ai fais ça en Python il n'y a pas longtems. Tu commence pas prendre la taille des fichiers, et tu ne calcules leur md5 que pour ceux qui ont la même taille. Et bien sur, tu met les resultats en cache.

n°620407
$man
Posté le 23-01-2004 à 16:14:37  profilanswer
 

ca existe pas un programme qui trouve les doublons ?
 :hello:

n°620484
red factio​n
Posté le 23-01-2004 à 17:55:49  profilanswer
 

un ptit crc32 qui stocke le checksum du fichier  et son chemin dans un tableau et voila c terminé  [:yamusha]


Message édité par red faction le 23-01-2004 à 17:56:05
n°620490
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 18:02:19  profilanswer
 

Bah il ne me semble pas, sinon de toute façon ça doit pas être difficile à programmer donc j'ai pas trop trop cherché à vrai dire.
 

$man a écrit :

ca existe pas un programme qui trouve les doublons ?
 :hello:  

n°620493
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 18:04:16  profilanswer
 

Arf, je sais pas encore programmer en python.
A ton avis ce que tu as programmé se transpose facilement en C, ou un autre langage ? Parce que c'est en gros ce que je veux faire. Tu entends quoi par mettre les résultats en cache ?
 

Kristoph a écrit :

J'ai fais ça en Python il n'y a pas longtems. Tu commence pas prendre la taille des fichiers, et tu ne calcules leur md5 que pour ceux qui ont la même taille. Et bien sur, tu met les resultats en cache.

n°620617
el muchach​o
Comfortably Numb
Posté le 23-01-2004 à 22:05:19  profilanswer
 

Perl est aussi parfaitement indiqué pour ce genre de choses.

n°620629
chaica
Posté le 23-01-2004 à 22:12:46  profilanswer
 

Tu vas voir le python c'est facile et ça tue.

mood
Publicité
Posté le 23-01-2004 à 22:12:46  profilanswer
 

n°620660
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 23:05:02  profilanswer
 

euh ... je connais pas non plus perl :sweat:
Est-ce que l'environnement python est lourd à installer (genre visual studio) ? Parce qu'à la limite je peux essayer juste pour voir ...

n°620666
Taz
bisounours-codeur
Posté le 23-01-2004 à 23:11:00  profilanswer
 

en sh
 
un find qui fait le md5sum de tout ce qu'il trouve, tu tries par md5, tu vires tout ce qui a pas le meme md5 et vlan, voilà les doublons. facile

n°620667
*syl*
--> []
Posté le 23-01-2004 à 23:14:23  profilanswer
 

C'est vachement lourdingue de hacher tous les fichiers du disque hein..
Faut prendre la méthode à Kristoph, c'est qd même vachement mieux..

n°620668
Taz
bisounours-codeur
Posté le 23-01-2004 à 23:17:02  profilanswer
 

bah tu peux faire en 2 passes alors
 
la première en gardant les fichiers ayant la même taille, ensuite tu  discrimes en fonction du md5sum

n°620671
uriel
blood pt.2
Posté le 23-01-2004 à 23:20:49  profilanswer
 

je vote Perl, ce sera plus facile que en shell avec les bibliotheque à sa disposition


---------------
IVG en france
n°620673
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 23:22:37  profilanswer
 

Euh juste une question très bête : je veux faire un programme sous winXP là, alors sh j'ai pas, et Perl est-ce possible ? Est-ce plus adapté/plus facile que Python ?

n°620677
uriel
blood pt.2
Posté le 23-01-2004 à 23:24:51  profilanswer
 

freewol a écrit :

Euh juste une question très bête : je veux faire un programme sous winXP là, alors sh j'ai pas, et Perl est-ce possible ? Est-ce plus adapté/plus facile que Python ?


 
pour sh, t'es nické sauf install d'un couche unix (cygwin)
je sais pas si tu peux faire un .bat pour faire ce que tu veux
 
Perl ou Python, c'est toi qui voit  [:spamafote]  
les deux fonctionne avec win dès que tu installes un interpreteur -> Google parce que là de tête je vois pas.
Je trouve Perl plsu adapté pour tout ce qui est traitement de fichiers, mais c'est surement parce que je le connais mieux aussi


Message édité par uriel le 23-01-2004 à 23:25:21

---------------
IVG en france
n°620679
Taz
bisounours-codeur
Posté le 23-01-2004 à 23:25:42  profilanswer
 

[:ban]
 
tu pourrais dire ce que tu veux ?
 
tu serais pas entrain de nous dire que t'as jamais programmé une seule ligne ?
 
Démarrer->Rechercher et t'es parti :o

n°620689
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 23:34:27  profilanswer
 

Bah oui c'est vrai, j'ai jamais programmé, d'ailleurs la programmation je ne sais pas ce que c'est, c'est pas un jeu fourni avec windows ?  
Enfin bon si on excepte que je programme couremment en C++ et Delphi, pis que j'ai des bases en php et java.
C'est pas parce que je ne connais aucun langage "évolué" que je ne connais rien, pas cool la généralisation.
Surtout que tes deux 1er posts ne servaient à rien vu qu'on avait déjà dit que ct mieux de d'abord tester la taille des fichiers, et que ce dernier n'a guère plus d'utilité ...

n°620690
Taz
bisounours-codeur
Posté le 23-01-2004 à 23:35:38  profilanswer
 

je comprends pas pourquoi t'es encore entrain de déblatérer, t'as tout ce qu'il te faut pour t'y mettre

n°620692
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 23:39:49  profilanswer
 

j'ai tout ce qu'il me faut ? Alors que je n'ai jamais programmé en python ni en perl, et que je ne sais pas s'il me faut que je lance dans l'un ou dans l'autre, voir si je dois rester dans un de mes langages ? Je ne vois pas où est le mal à attendre un peu plus d'indications de la part de gens un peu plus constructifs que toi.  
Surtout que ma déblatération n'aurait jamais eu lieu sans tes verbiages.
Si j'ai enfrain d'une qqconque manière les règles de ce forum, libre à toi de fermer ce topic. Sinon je ne vois pas pkoi tu ne cesse d'y revenir ...

n°620693
Taz
bisounours-codeur
Posté le 23-01-2004 à 23:40:47  profilanswer
 

je vois aucun problème à faire le travail en C++
depuis le temps, t'aurais déjà torché le problème

n°620696
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 23:43:26  profilanswer
 

moi j'en voit un gros : gérer des milliers de fichiers dans un simple fichier texte ne me semble pas très adapté.
Si je mets 10 min à faire mon prog et qu'ensuite il prend 15 min à chaque execution alors que j'aurais pu faire le prog en 1 semaine et qu'il ne prenne que 2 min par execution, je n'aurai pas l'impression d'avoir "torché le problème" comme tu dis.

n°620697
Taz
bisounours-codeur
Posté le 23-01-2004 à 23:47:08  profilanswer
 

je vois pas pourquoi ça serait plus rapide avec un langage qu'un autre.

n°620699
chrisbk
-
Posté le 23-01-2004 à 23:48:42  profilanswer
 

freewol a écrit :

moi j'en voit un gros : gérer des milliers de fichiers dans un simple fichier texte ne me semble pas très adapté.
Si je mets 10 min à faire mon prog et qu'ensuite il prend 15 min à chaque execution alors que j'aurais pu faire le prog en 1 semaine et qu'il ne prenne que 2 min par execution, je n'aurai pas l'impression d'avoir "torché le problème" comme tu dis.


qui parle de fichier texte ?

n°620700
chrisbk
-
Posté le 23-01-2004 à 23:49:09  profilanswer
 

taz a écrit :

je vois pas pourquoi ça serait plus rapide avec un langage qu'un autre.


 
IO bufferisé, sinon, heuh
boaf

n°620701
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 23:49:30  profilanswer
 

Ah moins que tu ne connaisses tous les langages existants sous windows permettant de faire ça, la fait que tu ne saches pas pkoi ça serait plus rapide n'implique en aucun cas le fait que ça ne soit effectivement pas plus rapide ...
Je ne vois pas pkoi il y aurait de la vie sur mars, à quoi bon y envoyer des rovers ...

n°620702
chrisbk
-
Posté le 23-01-2004 à 23:50:01  profilanswer
 

freewol a écrit :

Ah moins que tu ne connaisses tous les langages existants sous windows permettant de faire ça, la fait que tu ne saches pas pkoi ça serait plus rapide n'implique en aucun cas le fait que ça ne soit effectivement pas plus rapide ...
Je ne vois pas pkoi il y aurait de la vie sur mars, à quoi bon y envoyer des rovers ...


 
heuh tu pars en vrille la

n°620705
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 23:53:35  profilanswer
 

Bah en C c'est le seul moyen que je connaisse pour stocker toutes les tailles des fichiers. Peut-être que tu suggères de tout stocker dans un tableau en mémoire, ça revient au même au niveau organisation, mais on doit gagner un peu de vitesse d'execution effectivement.
Ca reste cependant assez lourd à traiter, que l'on doive faire un tri ou une recherche dans ce tableau, s'il est vraiment énorme. C'est pour ça que je voudrais m'orienter vers un langage qui permette de gérer ça plus efficacement.
 

chrisbk a écrit :


qui parle de fichier texte ?

n°620707
Kristoph
Posté le 23-01-2004 à 23:55:07  profilanswer
 

freewol a écrit :

Bah en C c'est le seul moyen que je connaisse pour stocker toutes les tailles des fichiers. Peut-être que tu suggères de tout stocker dans un tableau en mémoire, ça revient au même au niveau organisation, mais on doit gagner un peu de vitesse d'execution effectivement.
Ca reste cependant assez lourd à traiter, que l'on doive faire un tri ou une recherche dans ce tableau, s'il est vraiment énorme. C'est pour ça que je voudrais m'orienter vers un langage qui permette de gérer ça plus efficacement.
 
 


 
Une bonne table de hachage et hop c'est gagné. En tout cas c'est comme ça que j'ai fais en Python. Bien sur, en C tu vas probablement devoir la coder toi même :)

n°620708
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 23:55:08  profilanswer
 

Euh ... oui un peu, désolé. Je vais dormir un bon coup et revenir plus frais demain.
 

chrisbk a écrit :


 
heuh tu pars en vrille la

n°620709
chrisbk
-
Posté le 23-01-2004 à 23:55:46  profilanswer
 

freewol a écrit :

Bah en C c'est le seul moyen que je connaisse pour stocker toutes les tailles des fichiers. Peut-être que tu suggères de tout stocker dans un tableau en mémoire, ça revient au même au niveau organisation, mais on doit gagner un peu de vitesse d'execution effectivement.
Ca reste cependant assez lourd à traiter, que l'on doive faire un tri ou une recherche dans ce tableau, s'il est vraiment énorme. C'est pour ça que je voudrais m'orienter vers un langage qui permette de gérer ça plus efficacement.
 
 


 
et donc tu programmes courrament en C++ ?

n°620710
freewol
Ceci n'est pas une citation
Posté le 23-01-2004 à 23:56:26  profilanswer
 

Est-ce que pense que je ferais mieux d'installer un interpréteur python juste pour ce programme, plutôt que de coder ce qu'il faut pour le faire en C ?
 
 

Kristoph a écrit :


Une bonne table de hachage et hop c'est gagné. En tout cas c'est comme ça que j'ai fais en Python. Bien sur, en C tu vas probablement devoir la coder toi même :)

n°620711
chrisbk
-
Posté le 23-01-2004 à 23:56:37  profilanswer
 

Kristoph a écrit :


 
Une bonne table de hachage et hop c'est gagné. En tout cas c'est comme ça que j'ai fais en Python. Bien sur, en C tu vas probablement devoir la coder toi même :)


 
vu qu'il programme courrament en C++ il aura bien entendu pensé de lui meme a ce que la STL peut lui offrir

n°620868
uriel
blood pt.2
Posté le 24-01-2004 à 15:50:17  profilanswer
 

sinon, vu que tu connais aussi java, pourquoi pas? :o


---------------
IVG en france
n°620887
*syl*
--> []
Posté le 24-01-2004 à 16:51:13  profilanswer
 

uriel a écrit :

sinon, vu que tu connais aussi java, pourquoi pas? :o

Parce que ça suxx ? :whistle:  
 
 
Ok je sors :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Quel langage pour faire ça ?

 

Sujets relatifs
[PostgreSQL] - Aucun langage disponible...[REXX] Des connaisseurs ? Que penser de ce langage ?
Quel est le langage de ce bout de programme ?le vb est il un langage de prog?
Portage de Unix à Windows en langage C...[Langage C] Existe t il une fonction de conversion entier->caractère??
quel est le meilleur langage (2eme tour)Quel est le meilleur langage
utilisation de mediumblob from mysql avec le langage php ...caractere en langage c
Plus de sujets relatifs à : Quel langage pour faire ça ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR