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

  FORUM HardWare.fr
  Programmation
  Java

  Tri alphabétique d'un fichier après fusion

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tri alphabétique d'un fichier après fusion

n°1978326
evayla
Posté le 29-03-2010 à 11:39:29  profilanswer
 

Bonjour,
 
J'ai plusieurs fichiers, dont chacune des lignes commence par une date du type:
2010-03-26 13:45:45,206 ......
 
J'aimerais fusionner ces fichiers dans un même fichier, et ensuite trier les lignes du fichier obtenu par leur date.
 
Quelle est la méthode la plus performante pour obtenir un résultat en peu de temps ?
 
ex:
-> Lire les fichiers en parallèle et créer le nouveau fichier petit à petit après comparaison des dates
-> Tout copier dans un fichier, et faire un tri en utilisant des ArrayList (chaque entrée de la liste serait une ligne du fichier)
 
Merci d'avance pour vos conseils ou idées,
 
Eva

mood
Publicité
Posté le 29-03-2010 à 11:39:29  profilanswer
 

n°1978337
loracle_lu​nique
Un blog pour une solution
Posté le 29-03-2010 à 11:49:15  profilanswer
 

Salut Eva,
 

Citation :

J'aimerais fusionner ces fichiers dans un même fichier, et ensuite trier les lignes du fichier obtenu par leur date.


 
Moi je ferai plutot dans le sens inverse. Tu tri d'abord tes fichiers indépendament et ensuite tu les fusionnes.. Si tu as besoin d'autres explications n'hésite pas.
Tu peux mettre ton programme dans un post, on regardera et on t'aidera a faire ça.
 
A+


---------------
Je vous attends mes disciples sur Idées pour un monde meilleur
n°1978679
lasnoufle
La seule et unique!
Posté le 29-03-2010 à 22:15:37  profilanswer
 

C'est un exo et faut justifier pourquoi ton truc est optimisé, ou c'est juste pour toi?
Ils sont gros tes fichiers?
 
Garanti pas optimisé, mais j'me ferais pas chier:
- tu les lis tous d'un coup, en mettant tes lignes dans un gros ArrayList comme tu dis
- après tu fais un Arrays.sort(tonArrayList)
- et pouf tu reparcours ta liste en écrivant le fichier de sortie
 
Après si tes fichiers/lignes sont gros, ou ton pc un peu vieux, et que t'as des problèmes de perf, faudra peaufiner. Mais bon ya 99% de chances que le truc qui va limiter la vitesse ce soit les I/O avec le disque dur et rien d'autre, et ca, t'y peux rien.


---------------
C'était vraiment très intéressant.
n°1978687
_PakMan_
Posté le 29-03-2010 à 22:36:29  profilanswer
 

Le solution de l'arraylist c'est un fake  :o  
 
Ca dépend en fait de la taille de ton fichier mais admettons que tu ai un gros fichier genre 2 Go. Si tu mets tous dans un arrayList, deux problèmes:
1) tu peux atteindre le nombre d'élément maximum d'un arraylist et dans ce cas ton programme ne tourne même plus
2) tu peux saturer ta ram qui est par défaut de 512 mo je crois pour la JVM qui fait que ton programme ne pourra pas non plus traiter le fichier
 
En plus l'arraylist c'est bien mais bof quand même, si tu veux des éléments triés c'est mieux de les rajouter dans une structures de données triée du genre TreeSet qui tri les éléments au fur et à mesure que les rajoutes. Comme ça à la fin du "insert" tu te retrouve avec un liste d'objet déjà trie tu n'as plus que les sortir et tu n'as pas à appeler la méthode sort() sur 2 millions d'enregistrements  :o  
 
Après faut voir la taille du fichier, si c'est un fichier de mickey genre 3 mo toutes les solutions conviennes  [:littlebill]  
 
Le mieux doit être de faire les tris puis fusionner les versions triées...
 


---------------
"Tant qu'il y aura des hommes il y aura de comptoirs"
n°1978691
lasnoufle
La seule et unique!
Posté le 29-03-2010 à 22:45:30  profilanswer
 

Oui oui j'avais dit que c'est pas optimisé du tout hein. D'un autre coté vu les infos qu'on a...


---------------
C'était vraiment très intéressant.

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

  Tri alphabétique d'un fichier après fusion

 

Sujets relatifs
[C] Récuperer le nom d'un fichier zipremplacement dans un fichier de config en VBS ou Batch DOS
DNS 323 et fichier HTMLOuvrir un fichier dans une fenetre Windows
Perl - Fichier Texte SedChercher des valeurs dans un fichier XML
lire un fichier .mat en C Lier un fichier .cfg à un fichier .exe à l'aide d'un fichier .bat
Hyperlien dans flash via fichier xmlrecuperer données d'un fichier excel
Plus de sujets relatifs à : Tri alphabétique d'un fichier après fusion


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