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

Entrée/Sortie Java Discussion :

Recherche dans fichier CSV


Sujet :

Entrée/Sortie Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Par défaut Recherche dans fichier CSV
    Bonjour,

    Je souhaite rechercher des informations dans un fichier CSV et je ne sais pas comment faire, voilà à quoi ressemble mon fichier CSV:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    AAMOR,"HAKIMA","Licence A","Non référencé","0621024","3850880"
    AANOUNI,"SOUKAINA","Licence A","Non référencé","0449102","3920527"
    AARAB,"YOUSSEF","Licence A","Non référencé","0267021","3791727"
    AASSAL,"ABDELLATIF","Licence A","Non référencé","242B011","3850144"
    ABACHIN,"GABRIEL","Licence A","Non référencé","1601058","3763322"
    A partir des 2 derniers nombres, je souhaite récupérer les 2 premiers...
    Pourriez vous m'aider ???

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    tu parcours ton fichier avec un bufferedReader
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    tant que la ligne lu  n'est pas vide
          tu fait un split de ta ligne sur le caractere "," (ça renvoit un tableau qui contient chaque mot)
          si les données dans les cases 4 et 5 correspondent à ta recherche alors
              tu prend les données des cases 0 et 1
          fsi
    ftant
    http://java.sun.com/j2se/1.4.2/docs/...va.lang.String)

    http://java.sun.com/j2se/1.4.2/docs/...redReader.html


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Par défaut
    Je vais essayer comme ça merci !!!


  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Par défaut
    Cela marche très bien,
    Mais j'ai une grosse interrogation...
    A chaque fois que je veux parcourir le fichier à l'aide du BufferedReader, je suis obligé de creer ce dernier?
    Est ce que je ne pourrais pas faire un reset(), mais dans ce cas la, comment mettre ma mark sans pouvoir connaitre la taille de mon buffer...
    Est ce clair?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    perso, je recrée le bufferedReader, je n'ai jamais utilisé de reset, mark etc...
    peut etre qu'un expert pourra t'aider

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Si tu as Java 5 ou 6, utilise Scanner au lieu de BufferedReader.
    En plus, tu as une méthode reset() sur Scanner.

    Sinon si ton CVS n'est pas trop gros et que tu vas souvent chercher des infos dedans, charge-le en mémoire dans par exemple une variable List<Personne>, où une personne contient toutes les infos d'une ligne de ton CVS, et après tu peux chercher dans ta liste...
    Ça sera beaucoup plus rapide que de parser ton fichier à chaque fois (même si c'est quand même pas trop lent car le cache fait bien son travail)...

  7. #7
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Citation Envoyé par ®om
    Si tu as Java 5 ou 6, utilise Scanner au lieu de BufferedReader.
    En plus, tu as une méthode reset() sur Scanner.

    Sinon si ton CVS n'est pas trop gros et que tu vas souvent chercher des infos dedans, charge-le en mémoire dans par exemple une variable List<Personne>, où une personne contient toutes les infos d'une ligne de ton CVS, et après tu peux chercher dans ta liste...
    Ça sera beaucoup plus rapide que de parser ton fichier à chaque fois (même si c'est quand même pas trop lent car le cache fait bien son travail)...
    Avec cette méthode, attention à l'exception OutOfMerrory qui risque d'arriver du jour au lendemain sans prévenir.
    Sinon pour revenir au problème :
    - pas encore utilisé Scanner mais je n'en entends que du bien !
    - mark + reset de BufferedReader me paraissent un peu hazardeux...
    - méthode dont je suis convaincu de la fiabilité : utiliser RandomAccessFile et sa méthode seek(0) à la place de BufferedReader, par contre cette méthode est moins performante.
    - au niveau performance ( si c'est important ), on peut essayer de voir ce qu'on peut faire avec nio.

  8. #8
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par iohack
    Avec cette méthode, attention à l'exception OutOfMerrory qui risque d'arriver du jour au lendemain sans prévenir.
    Ça dépend du problème... Si t'as que 100 ou 1000 personnes tu risques rien ...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Par défaut
    Pour info, mon fichier fait 450000 lignes... donc....
    Finalement, j'ai décidé d'ouvrir et de fermer à chaque fois mon fichier.csv sinon, c'etait trop compliqué...

    Merci pour les infos

  10. #10
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par psal78
    Pour info, mon fichier fait 450000 lignes... donc....
    C'est donc que ton cvs ne doit pas être très approprié pour ce que tu fais...
    Pourquoi n'utilises-tu pas une base de données?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Par défaut
    Ce fichier ne vient pas de moi, mais d'une personne tierce. Cette personne ne peut pas me fournir un accès à sa base de données, donc elle m'a mis une partie des informations de la base de données dans un fichier CSV qui sera mis à jour sur internet, régulièrement...

Discussions similaires

  1. Rechercher un fichier CSV dans répertoire
    Par ADbtr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/07/2010, 10h45
  2. recherche dans fichier xml
    Par piro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/03/2006, 08h11
  3. Sauvegarde de données dans fichier csv
    Par issou dans le forum C
    Réponses: 1
    Dernier message: 22/12/2005, 08h36
  4. Réponses: 4
    Dernier message: 28/10/2005, 09h59
  5. Recherche dans fichiers
    Par Tchinkatchuk dans le forum Linux
    Réponses: 2
    Dernier message: 17/06/2005, 10h32

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