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

Java Discussion :

Afficher une certaine ligne d'un fichier texte.


Sujet :

Java

  1. #1
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut Afficher une certaine ligne d'un fichier texte.
    Bonjour,

    Je fais une recherche dans un fichier txt. Et j'aurais besoin d'afficher la ligne sous le texte recherché.

    Mais je n'arrive qu'à afficher la première ligne de ce fichier, ou la ligne recherchée, ou son numéro, mais pas la ligne elle-même, je ne sais pas trop comment faire.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Scanner scanner1 = new Scanner(new File(path2));
                while (scanner1.hasNextLine()) {
                    line2 = scanner1.nextLine();
                    if (line2.toUpperCase().contains(recherche)) {
                        buf.append(in.readLine()).append("\n");
                        buf.append(in.readLine()).append("\n");                   
                        rech = 3;
                    }
                }
                scanner1.close();
    Si vous voyez comment faire svp ? Ca doit pas être bien compliqué, mais je bloque...

    Merci d'avance,
    Très cordialement,

    ANDRE Ani
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    la ligne que tu veux afficher, c'est line2, non ?
    Sinon c'est quoi in?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Salut,

    in c'est un BufferedReader. Pour stocker les lignes lues afin d'afficher celle qu'il me faut.

    line2 c'est le string qui stocke la ligne lue.

    La ligne que je veux afficher, c'est celle sous la ligne contenant "recherche".
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par lostsoul Voir le message
    Salut,

    in c'est un BufferedReader. Pour stocker les lignes lues afin d'afficher celle qu'il me faut.
    Si c'est pour stocker, alors ça doit être un writer pas un reader...

    Citation Envoyé par lostsoul Voir le message
    line2 c'est le string qui stocke la ligne lue.
    c'est aussi la ligne qui contient recherche, dans le bloc du if...
    Citation Envoyé par lostsoul Voir le message

    La ligne que je veux afficher, c'est celle sous la ligne contenant "recherche".
    "sous" ? tu veux dire celle d'après celle qui contient recherche ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Il y a un buffer et un reader et path2 c'est pour le fichier dans lequel chercher) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    BufferedReader in = new BufferedReader(new FileReader(path2));
    StringBuffer buf = new StringBuffer();
    Oui, line2 contiendra "recherche" puisqu'il lit toutes les lignes une par une.

    Désolé si je m'exprime mal, je veux pouvoir afficher la ligne situé juste en dessous de la ligne qui contient "recherche".

    Mon fichier se présente comme cela :

    mot recherche
    definition

    mot recherche
    definition

    Voila, j'espère être plus clair cette fois-ci.
    Merci ;-)
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par lostsoul Voir le message
    Il y a un buffer et un reader et path2 c'est pour le fichier dans lequel chercher) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    BufferedReader in = new BufferedReader(new FileReader(path2));
    StringBuffer buf = new StringBuffer();
    A quoi ça sert, puisque tu as déjà un Scanner scanner1 pour lire ce fichier ?

    Citation Envoyé par lostsoul Voir le message
    Oui, line2 contiendra "recherche" puisqu'il lit toutes les lignes une par une.

    Désolé si je m'exprime mal, je veux pouvoir afficher la ligne situé juste en dessous de la ligne qui contient "recherche".

    Mon fichier se présente comme cela :

    mot recherche
    definition

    mot recherche
    definition

    Voila, j'espère être plus clair cette fois-ci.
    Merci ;-)
    Tu peux procéder soit en te basant sur le format du fichier : donc des couples mot, définition, séparé par des lignes de séparation :

    Code other : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    tant qu'il y a des lignes
       lire un mot et sa définition
           soit lire la prochaine ligne et la stocker dans mot
           s'il y a encore des lignes
              lire la prochaine ligne et la stocker dans définition
           sinon 
              erreur (sortir)
           fin si
           si le mot contient recherche, 
              afficher la définition
           fin si
       s'il y a encore des lignes, 
          lire la prochaine ligne (séparation)
       fin si
    fin tant que

    ou utiliser un boolean mottrouvé :

    Code other : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    mottrouvé=false
    tant qu'il y a des lignes
        lire la prochaine ligne et la stocker dans line2
        si mottrouvé vaut true
           afficher line2
           mottrouvée=false
        sinon
           si line2 contient recherche 
              mottrouve=true
           fin si
        fin si
    fin tant que


    ou à chaque fois que tu trouve un mot, mémoriser dans un booléen que tu as trouvé un mot,
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre habitué Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 759
    Points : 184
    Points
    184
    Par défaut
    Oui, j'avais fait le bufferedreader et le stringbuffer pour stocker la réponse mais effectivement, ça ne sert à rien.

    Et j'ai résolu mon problème, tout bêtement :
    S'il trouve le mot recherché, il lit la ligne suivante et l'affiche.

    Et sa semble marcher.

    Merci beaucoup pour tout.
    ANDRE Ani
    GNU/Linux et Informatique Libre
    https://andre-ani.fr

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/02/2013, 11h05
  2. [Débutant] rentrer dans une certaine ligne d'un fichier texte Possible?
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 5
    Dernier message: 05/04/2010, 00h16
  3. afficher une image jpeg sur un fichier text
    Par Sarah! dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2008, 18h00
  4. Comment lire une seul ligne d'un fichier texte?
    Par Julien1987 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/01/2007, 13h36
  5. Supprimer certaines lignes d'un fichier texte
    Par kek_net dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 11h21

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