IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

tri sur fichier CSV


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 12
    Points
    12
    Par défaut tri sur fichier CSV
    bonjour,

    voila ma problématique:

    J'ai deux fichier csv (équivalent d'un fichier excel), chacun comportant une colonne en commun. Le but est de les fusionner en prenant comme pivot les données de la colonne commune mais avec un souci de performance.

    Mon idée était de les trier par la colonne determinant dans un premier temps.
    (Mon premier probleme)

    Puis de les fusionner.
    (Mon deuxième problème)

    Avez vous une piste ou une solution.

    Merci a vous d'avance!!!!

  2. #2
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Salut,

    je te conseille dans un premier temps de ne pas optimiser et de faire qqch de simple. Si les perfs ne sont pas assez bonnes, tu pourras optimiser.

    Il manque quelques données pour qu'on puisse réponde précisément:
    - nombre de lignes identiques dans les deux fichiers?
    - pas de doublons sur ton "pivot"?

    Perso je ferai un truc de ce genre:

    1) Faire un objet qui reflète une ligne du fichier fusionné, soit ObjetPerso

    2) Parser le premier csv en remplissant une Map avec en clef l'info de ta colonne "pivot" et en valeur un ObjetPerso que tu remplis avec les infos des autres colonnes(Map<String, ObjetPerso>)

    3) Parser le second fichier en complétant les objets de ta map (map.get("colonne pivot") te renverra l'ObjetPerso prérempli).

    4) Tu as ta Map complète, itère dessus et crée ton nouveau fichier.

    Autre possiblité en lieu et place des points 3) et4):
    - Écrire ton nouveau fichier en parallèle de la lecture du second csv.
    (récupération de l'objet, écriture de la ligne, ligne suivante identique...etc)

    A plus

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Points : 190
    Points
    190
    Par défaut
    Si le tri t'intéresse tu pourrais utiliser deux TreeMap. Tu pourrais alors réaliser un parcourt itératif dans l'ordre et assembler les éléments correspondant : il faudrait pour cela parcourir la première liste et la second au même temps, quand la première dépasse la seconde, tu incrémente la seconde et vis versa, c'est relativement simple à faire, quand ils sont égaux tu fusionne. Je te conseillerais d'utiliser des copies de l'itérateur.

Discussions similaires

  1. [AC-2000] Suppression lignes sur fichier CSV depuis Access
    Par electronedf dans le forum VBA Access
    Réponses: 8
    Dernier message: 25/10/2010, 13h35
  2. symbole decimal sur fichier CSV
    Par looping dans le forum Langage
    Réponses: 3
    Dernier message: 19/01/2009, 12h06
  3. Ecriture sur fichier csv
    Par PIMPMAX dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 09/01/2007, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo