Pas pressé svp (JAVA)

nent -  
 Utilisateur anonyme -
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
A voir également:

2 réponses

Utilisateur anonyme
 
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
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
Utilisateur anonyme
 
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