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

avec Java Discussion :

Gros problème de lecture de ligne spécifique dans un texte?


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut Gros problème de lecture de ligne spécifique dans un texte?
    Bonjour à tous,

    je voudrai savoir comment peut-on lire une ligne qui possède des données particulière en java .
    je m'explique, par exemple dans une table SQL si on veut selectionner certaines données d'une table , on peut ecrire:
    select * from Table where salaire<2500
    A ce moment là on affiche toutes les données concernant un salaire < 2500.

    En java, si j'ai un texte avec des milliers de lignes et que je veux selectionner seulement les lignes qui contiennent le salaire de < 2500, comment puis-je faire.

    Avec un BufferedReader me dit-on, ou des indexOf()

    je ne vois pas comment, parce que si on selectionne les lignes en fonction du numero de ligne cela fonctionne mais seulement quand on connait d'avance le nombre de lignes que possede le fichier texte.
    Si un jour le fichier comporte plus de ligne, le code va planter, parce que les lignes seront déclaées.

    Quelle methode peut-on utiliser pour selectionner des lignes qui possèdent des données spécifiques mais attention sur la meme ligne il peut y avoir d'autres chiffre comme 2 ou 5 ou 0.

    Si pas de solution , j'arrête tout de suite de chercher.
    Mais ce problème me plombe la vie depuis plus d'une semaine.
    merci à tous

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    bufferedReader, vous lisez ligne par ligne, vous parsez chaque ligne pour en extraire l'information dont vous avez besoin. Si la ligne vous conviens, vous la gardez. Ensuite vous recommencez avec la ligne suivante. Pas besoin de savoir le nombre de lignes dans le fichier pour le lire ligne par ligne

  3. #3
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut
    Tchize, quand vous dites vous parsez chaque ligne pour en extraire les données dont vous avez besoin, en fait je ne veux pas extraire les données d'une ligne dont j'ai besoin, je voudrai extraire la ligne complète qui contient des données spécifiques.

    -Donc d'abord je lis ligne par ligne le texte ok
    -ensuite je cherche la ligne qui contient une donnée spéficique.--
    -j'extrais la ligne entiere qui contient cette donnée.--

    parce que si on parse une ligne, on la modifie, elle ne ressemblera pas à l'origine.

    merci

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ben le parsing sert surtout à extraire l'information nécessaire pour faire votre test. Si votre test c'est >2500, ca va être dure de faire ça sur
    "hello;world;2154;64.3;" sans extraire l'info.

  5. #5
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut
    c'est bien ce que je pensais.

    j'ai un texte avec des milliers de ligne, certaines lignes ressemblent à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    2011/05/01   08:00:59  010   23.58  45.225 120.01
    2011/05/01   08:00:59  011   23.58  45.225 120.01
    2011/05/01   08:00:59  012   23.58  45.225 120.01
    il sera donc impossible d'extraire seulement les lignes qui ont les numéros 010, 011, 012 parce que dans la même ligne il y a les même numéros à d'autres endroits comme 01.

    Par contre les blocs de chiffre sont séparés ou délimiter par des espaces

    Il y a peut-être un moyen d'extraire ces lignes s'il l'on peut préciser que les données sont délimitées par des espaces.

    je ne sais pas.

    merci

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par ssmano Voir le message
    parce que si on parse une ligne, on la modifie, elle ne ressemblera pas à l'origine.
    Ben, tu gardes la ligne sous le coude quelque part, tu la parses.
    Si elle répond aux conditions tu oublies le parsing et tu retiens la ligne que tu avais gardée sous le coude.
    Sinon, tu oublies tout et tu passes à la ligne suivante.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Points : 402
    Points
    402
    Par défaut
    De plus, avec une bonne RegExp, ca va rouler tout seul le parsing...

    Et peu importe le nombre de chiffres ou autre de tes lignes, avec ce qui a été dit, plus une RegExp bien écrite, et bien pu de problèmes !
    C'est en aidant les autres qu'on en apprend beaucoup soi-même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de lecture d'un stream dans une boucle
    Par Kerberos69 dans le forum VBScript
    Réponses: 3
    Dernier message: 09/03/2009, 19h43
  2. Réponses: 55
    Dernier message: 16/11/2008, 17h32
  3. Affichage de lignes spécifiques dans un fichier binaire
    Par Marley_T dans le forum Débuter
    Réponses: 1
    Dernier message: 19/01/2008, 14h38
  4. Réponses: 7
    Dernier message: 13/03/2007, 11h20
  5. Réponses: 1
    Dernier message: 21/09/2006, 07h15

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