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 :

Sauvegarder valeur ligne précédente lecture d'un fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 89
    Points : 56
    Points
    56
    Par défaut Sauvegarder valeur ligne précédente lecture d'un fichier
    Bonjour,

    je parcours un fichier texte qui sous cette forme :
    champ1|champ2|champ3|etc...
    Je boucle sur celui-ci et pour récupérer chaque champs, je casse au niveau du pipe. L'autre étape, c'est de comparer la valeur du champ1 de la ligne en cours avec la valeur du champ1 de la ligne précédente. Si c'est équivalent, je lance un traitement particulier, si c'est non, j'informe l'utilisateur. Une idée ?

    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
     
    InputStream ips=new FileInputStream(constantes.INPUT_INDEX); 
    InputStreamReader ipsr=new InputStreamReader(ips);
    @SuppressWarnings("resource")
    BufferedReader br=new BufferedReader(ipsr);
     
    while ((chaine = br.readLine())!=null) {
    	valFicInd = chaine.split("\\|");
    	ficIndex.setChamp1(valFicInd[0]); 
    	ficIndex.setChamp2(valFicInd[2]);	
    	ficIndex.setChamp3(valFicInd[4]);	
    	ficIndex.setChamp4(valFicInd[5]);
     
    	// Test pour créer PDF			
    	if(ficIndex.setChamp2().equals("toto")) {	
    		compteur++;
    		Util.createPDFUnit(constantes.UNIT_PDF, ficIndex.champ1(), compteur, ficIndex.champ3(), ficIndex.champ4());
            }
    }
    Merci pour vos retours.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 191
    Points : 458
    Points
    458
    Par défaut
    Je ne comprend pas ou tu bloques.
    Tu n'utilises qu'une variable chaine pour récupérer les lignes lu, alors que tu as des tests a faire avec ta ligne précédente.

    Il te faut 2 variable, une que tu alimentes avant ta boucle et que tu met a jour en fin de boucle.
    Si ta première variable n'est pas nulle, tu boucles comme tu le fais actuellement, c'est a dire que dans cette boucle tu utilises une nouvelle variable pour récupérer la ligne en cours et dès que tu arrives a la fin de la boucle, tu remplaces ta première variable par la variable de ta boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String lignePrecedente = br.readLine();
    if(lignePrecedente != null) {
      String ligneCourante = null;
      while((ligneCourante = br.readLine()) != null) {
        /* Tes traitements */
        lignePrecedente = ligneCourante;
      }
    }

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par EyZox Voir le message
    Je ne comprend pas ou tu bloques.
    Tu n'utilises qu'une variable chaine pour récupérer les lignes lu, alors que tu as des tests a faire avec ta ligne précédente.

    Il te faut 2 variable, une que tu alimentes avant ta boucle et que tu met a jour en fin de boucle.
    Si ta première variable n'est pas nulle, tu boucles comme tu le fais actuellement, c'est a dire que dans cette boucle tu utilises une nouvelle variable pour récupérer la ligne en cours et dès que tu arrives a la fin de la boucle, tu remplaces ta première variable par la variable de ta boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String lignePrecedente = br.readLine();
    if(lignePrecedente != null) {
      String ligneCourante = null;
      while((ligneCourante = br.readLine()) != null) {
        /* Tes traitements */
        lignePrecedente = ligneCourante;
      }
    }
    Salut et merci.

    Effectivement, je suis un gros boulet... Quand je vois ta réponse, j'ai honte d'avoir posé la question... C'était tout con et je n'y ai même pas pensé ! On va dire que j'ai la tête dans les fêtes !

    @+

Discussions similaires

  1. Lecture de la valeur d'un champs d'une ligne précédente.
    Par rhproof dans le forum FastReport
    Réponses: 1
    Dernier message: 12/04/2013, 14h02
  2. Réponses: 6
    Dernier message: 20/07/2007, 15h49
  3. Lecture d'un fichier ligne par ligne
    Par kabouns dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2006, 15h46
  4. [lecture d'un fichier] ligne par ligne
    Par pitit777 dans le forum C++
    Réponses: 3
    Dernier message: 26/11/2005, 11h22
  5. Réponses: 14
    Dernier message: 30/03/2005, 21h50

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