J'airéaliser le programme suivant qui permet lire un fichier et de
prendre les informations à partir du caractère '['. j'effectue alors
un affichage de ma variable text1 pour vérifier ce qu'elle comporte
et je me rend compte qu'elle ne comporte que le caractère '['.
Voici mon programme
import java.io.*;
import java.lang.*;
import java.lang.String;
import java.util.*;
public class TestConf1
{
public static void main(String[] args)
{
int i=0;
String source="c:/A000_commande.xml";
String dest="c:/conf.txt";
String dest1="c:/test.txt";
}
if ((text1.indexOf('[') == 0)) { //'[' en 1ere position c'est ca ? // je pense a != -1 => il existe au moins une occurence de '['
System.out.println("2-"+text1); //idem (1) mais avec 2 en 1er caractere
//je pense a une erreur de fonction? //text1 = text1.substring(text1.indexOf('[')+1,text1.length()) //plutot text1 = text1.substring(text1.indexOf('[')+1); //supprime le '[' en 1ere position
System.out.println("3-"+text1);
if(text1.indexOf('[')!=0 && i==0) { //contient encore un '[' et i == 0 brout.write(text1); brout.newLine(); System.out.println(text1); i++; inside = true; } else if(i>0 && text1.indexOf(']') ==0 ) { //i>0 et ']' en 1ere position text1 = text1.substring(0,text1.indexOf(']')); brout.close(); //tu fermes le stream = plus d'ecriture future erreur insideúlse; } else if (inside) { brout.write(text1); brout.newLine(); }
/************************************************************************** ne devrais tu pas boucler sur ces tests pour controler les autres occurences de '[' **************************************************************************/
System.out.println("4-"+t); // ce text1 affiche ' ' } }
//tu es le responsable des streams = les fermer correctement dans toute les situations possibles //meme imprevisibles, la methode finaly est faite pour cela brin1.close(); brout.close(); } catch (IOException e) { System.out.println("Erreur =" + e.toString()); }
je n'ai pas compri le but de ton programme encore une fois ton code n'est pas clair. Il existe un classe StringTokenizer (deja cité) plus adapté a ton probleme. soignes un peu ta conception.
bon code si j'ose dire. bruno
dans l'article 34a41062.0311240532.5d5d7274@posting.google.com, Tony à
caralho27@hotmail.com a écrit le 24/11/03 14:32 :
try {
BufferedReader brin1 = new BufferedReader(new FileReader(source));
BufferedWriter brout = new BufferedWriter(new FileWriter(dest1));
String text1=null;
boolean eof = false;
boolean inside = false;
while (!eof)
{
if ((text1.indexOf('[') == 0)) { //'[' en 1ere position c'est ca ?
// je pense a != -1 => il existe au moins une occurence de '['
System.out.println("2-"+text1); //idem (1) mais avec 2 en 1er
caractere
//je pense a une erreur de fonction?
//text1 = text1.substring(text1.indexOf('[')+1,text1.length())
//plutot
text1 = text1.substring(text1.indexOf('[')+1); //supprime le '['
en 1ere position
System.out.println("3-"+text1);
if(text1.indexOf('[')!=0 && i==0) { //contient encore un '[' et
i == 0
brout.write(text1);
brout.newLine();
System.out.println(text1);
i++;
inside = true;
} else if(i>0 && text1.indexOf(']') ==0 ) { //i>0 et ']' en 1ere
position
text1 = text1.substring(0,text1.indexOf(']'));
brout.close(); //tu fermes le stream = plus d'ecriture future erreur
insideúlse;
} else if (inside) {
brout.write(text1);
brout.newLine();
}
/**************************************************************************
ne devrais tu pas boucler sur ces tests pour controler les autres occurences
de '['
**************************************************************************/
System.out.println("4-"+t);
// ce text1 affiche ' '
}
}
//tu es le responsable des streams = les fermer correctement dans toute
les situations possibles
//meme imprevisibles, la methode finaly est faite pour cela
brin1.close();
brout.close();
}
catch (IOException e) {
System.out.println("Erreur =" + e.toString());
}
je n'ai pas compri le but de ton programme encore une fois ton code n'est
pas clair.
Il existe un classe StringTokenizer (deja cité) plus adapté a ton probleme.
soignes un peu ta conception.
if ((text1.indexOf('[') == 0)) { //'[' en 1ere position c'est ca ? // je pense a != -1 => il existe au moins une occurence de '['
System.out.println("2-"+text1); //idem (1) mais avec 2 en 1er caractere
//je pense a une erreur de fonction? //text1 = text1.substring(text1.indexOf('[')+1,text1.length()) //plutot text1 = text1.substring(text1.indexOf('[')+1); //supprime le '[' en 1ere position
System.out.println("3-"+text1);
if(text1.indexOf('[')!=0 && i==0) { //contient encore un '[' et i == 0 brout.write(text1); brout.newLine(); System.out.println(text1); i++; inside = true; } else if(i>0 && text1.indexOf(']') ==0 ) { //i>0 et ']' en 1ere position text1 = text1.substring(0,text1.indexOf(']')); brout.close(); //tu fermes le stream = plus d'ecriture future erreur insideúlse; } else if (inside) { brout.write(text1); brout.newLine(); }
/************************************************************************** ne devrais tu pas boucler sur ces tests pour controler les autres occurences de '[' **************************************************************************/
System.out.println("4-"+t); // ce text1 affiche ' ' } }
//tu es le responsable des streams = les fermer correctement dans toute les situations possibles //meme imprevisibles, la methode finaly est faite pour cela brin1.close(); brout.close(); } catch (IOException e) { System.out.println("Erreur =" + e.toString()); }
je n'ai pas compri le but de ton programme encore une fois ton code n'est pas clair. Il existe un classe StringTokenizer (deja cité) plus adapté a ton probleme. soignes un peu ta conception.
bon code si j'ose dire. bruno
Causse bruno
dans l'article BBE7FAE8.6406%, Causse bruno à a écrit le 24/11/03 18:14 :
if(text1.indexOf('[')!=0 && i==0) { //contient encore un '[' et i == 0
if(text1.indexOf('[')!=-1 && i==0) { //contient encore un '[' et i == 0
dans l'article BBE7FAE8.6406%caussebruno@wanadoo.fr, Causse bruno à
caussebruno@wanadoo.fr a écrit le 24/11/03 18:14 :
if(text1.indexOf('[')!=0 && i==0) { //contient encore un '[' et
i == 0
if(text1.indexOf('[')!=-1 && i==0) {
//contient encore un '[' et i == 0