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 d'une ligne dans un fichier texte


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Août 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Recherche d'une ligne dans un fichier texte
    Bonjour,

    Je dispose d'un fichier texte contenant des lignes qui commencent par # et un caractère ={*, @, t, c}.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #* --- 
    #@ -,-,- 
    #t ---- 
    #c  ---
    J'ai lu le fichier ligne par ligne en cherchant les lignes commençant par #@ comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String ligne;
    			while ((lig=br.readLine())!=null){
    				if (lig.length()>1)
    				{
    					car=lig.charAt(1); 				
    					if (car=='@')				
    						X=lig.split(",");																	
     
     
    }}
    Je souhaite lire au sein de cette boucle "while" la ligne commençant par #c qui apparaît juste après la ligne courante #@ (la variable lig dans le code source) et la sauvegarder dans une variable string.

    Est ce qu'il y a un moyen de lire la première ligne #c sachant que #c apparaît toujours après deux lignes de #@

    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    Tu vas avoir besoin de lire deux lignes en avance de celle que tu vas traiter, car si tu trouves le caractère '@', tu auras besoin de lire deux lignes plus bas, mais potentiellement, tu auras besoin à l'étape d'après dans le while de relire la ligne intercalée entre pour savoir si elle contient ou non un arobas.

    En effet, rien n'interdit d'avoir la configuration suivante, si j'ai bien compris ton problème :
    #*------
    #@-----
    #@-----
    #c------
    #c------
    #*------

    Du coup, je te propose de sauvegarder dans un tableau à 3 éléments les lignes d'avance que tu as lues. Et comme cela, tu traites bien une ligne en connaissant les deux lignes suivantes.

    Attention à ne pas oublier à la fin de la boucle while de décaler les éléments de tableau vers la gauche : la ligne que l'on vient de traiter est perdu et la nouvelle ligne que l'on va lire est stocker à la position la plus à droite du tableau.


    Voici un exemple de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    		File fichier = new File(nomDuFichier );
    		Scanner lecteur = new Scanner(fichier);
    		String[] tableau = new String[3];
     
    		// Initialisation de 'tableau'
    		if (lecteur.hasNext())
    			tableau[0] = lecteur.next();
    		if (lecteur.hasNext())
    			tableau[1] = lecteur.next();
     
    		// Lecture de 'fichier'
    		while (lecteur.hasNext()) {
    			// Lecture de la nouvelle ligne
    			tableau[2] = lecteur.next();
     
    			// Traitement de la ligne se trouvant deux lignes au dessus de la ligne courante
    			if ((tableau[0].length() > 1) && (tableau[0].charAt(1) == '@')) {
    				String sauvegarde = tableau[2];
     
    				// Utilisation de 'sauvegarde'
    				// ...
    				// ...
    				// ...
    			}
     
    			// Decalage des éléments de 'tableau' d'un cran vers la gauche
    			// (car on a fini le traitement souhaité)
    			tableau[1] = tableau[2];
    			tableau[0] = tableau[1];
    		}
     
    		// Fermeture des Scanner et File
    		lecteur.close();

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/11/2014, 16h49
  2. supprimer une ligne dans un fichier texte
    Par linouline dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 23h02
  3. Supprimer une ligne dans un fichier texte
    Par @yoyo dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 28/03/2006, 14h19
  4. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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