Pas pressé svp (JAVA)

nent -  
 danimo -
Bonjour,

dans mon application java j ai besoin de savoir est ce que la ligne de mon fichier texte s'est terminé ou pas .

enfaite j ai programmé la lecture du fichier et la ligne pour appliquer le "StringToknizer" car je veux

pendre certain elements de la fin de la ligne mais le probleme c que a la fin il y a un "$" que je ve pas prendre .

ce $ c lui qui limite mes donnees comme" borne sup " sauf qu il y a des cas ou j ai les donnees reparti sur 2 ligne .

exemple: 1) aaa 00 0 06 19 0 DT STN IBN 111111 STDLINE 0 00 000 (CEPT) (CNDB) $

2) aaa 00 0 06 20 0 DT STN IBN 1111111 STDLINE 111111 (CWT) (CWI) (CEPT)

(I3WC) (ICR) (CNDB) $
-----------------------------
AIDEZ MOI SVP
Configuration: Windows XP
Firefox 3.0.11

2 réponses

  1. danimo
     
    Salut,

    Corrige moi si je me trompe.

    Si la ligne lue ne termine pas par $ c'est qu'il y a une suite pour cette ligne et tu dois lire la ligne suivante qui normalement est la suite et fin (donc avec $ à la fin).

    Peut-il y avoir plusieurs suites (sans $) ?

    De toutes manières il faudrait:
    -lire la ligne,
    -la copier dans un String (par exemple String ligneComplete),
    -voir si ligneComplete termine par $ >>>> if (ligneComplete.endsWith("$") )
    -si non lire la ligne la ligne suivante du fichier,
    -et l'ajouter à la suite de ligneComplete (concat ou ligneComplete += " " + ligne lue);

    En supposant qu'il n'y a qu'une suite, ligneComplete termine par $.
    Il reste à supprimer le $ (plus exactement " $") :

    ligneComplete = ligneComplete.substring(0, ligneComplete.length -2);

    Quelque chose comme ceci mais à adapter à la lecture:

    String ligneComplete = "";
    //simulation lecture
    String ligne1 = "aaa 00 0 06 20 0 DT STN IBN 1111111 STDLINE 111111 (CWT) (CWI) (CEPT)";
    String ligne2 = "(I3WC) (ICR) (CNDB) $";

    ligneComplete = ligne1;
    if (!ligneComplete.endsWith("$")) // le ! pour tester si ne termine pas par $
    ligneComplete += " " + ligne2; // on a lu la ligne suivante
    System.out.println(">>>>>>>>>> " + ligneComplete);
    ligneComplete = ligneComplete.substring(0, ligneComplete.length() -2);
    System.out.println(">>>>>>>>>> " + ligneComplete);

    Cordialement,

    Dan
    0
    1. nent
       
      oui il y a qu'une seul suite .merci bcp pour ta reponse

      ce que je savais pas est l'existence de la methode endWith()

      .
      0
  2. danimo
     
    PS,

    Et pour récupérer le dernier mot de ligneComplete (dans l'exemple >>> (CNDB) )

    int ind = ligneComplete.lastIndexOf("(");

    String derMot = ligneComplete.substring(ind);

    System.out.println("derMot : " + derMot);

    Dan
    0