|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Java stringhe
sto scrivendo un programmino java che legge da un file dei dati e me li estrae..il programma è questo (copio solo la parte principale):
Codice:
try { FileReader reader = new FileReader(in_file); BufferedReader buf_reader = new BufferedReader(reader); String aula = null; String image = null; String tutto = null; char cf; //StringBuffer str; char str[]; str = new char [25]; int c,i; i = 0; while ( (c = buf_reader.read()) != -1){ if((char)c != '§'){ str[i] = (char)c; i++; }else if((char) c == '§'){ tutto = new String (str); aula = tutto.substring(0,tutto.indexOf('#')); image = tutto.substring(tutto.indexOf('#')+1,tutto.indexOf(".gif")); System.out.println(aula+" "+image); if(aula.equals("G")){ System.out.println("uguale"); } str = new char[25]; tutto = null; aula = ""; image=""; i=0; } } System.out.println("uguale"); } in pratica la prima riga del file me la riconosce quelle successive no.. cosa potrebbe essere? ho provato anche a fare dentro al ciclo un aule.charAt(0) e mi resistuisce solo la lettera estratta dalla prima riga.. cosa c'è che nn va? grazie..ciao =) |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Re: Java stringhe
Quote:
ma come mai leggi un byte alla volta? non ti conviene acquisire una riga alla volta e poi separare aula, image,ecc.ecc.? |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2001
Città: Dundee, Scotland
Messaggi: 467
|
Prova a usare compareTo invece di equals.
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
leggo un byte alla volta perchè uso j2me e a quanto pare si può fare solo così..
le prime righe sono queste Codice:
import java.io.*; import java.net.*; import java.awt.*; import javax.swing.*; import java.util.*; import java.sql.*; public class leggiLista { public static void main(String args[]) { String in_file = "aule.txt"; |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2001
Città: Dundee, Scotland
Messaggi: 467
|
Se non specifichi il contenuto del file che intendi leggere e cosa vuoi estrarre non è che ti si possa aiutare molto.
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
il file è strutturato così
aula#immagine§ es: AA#immagine.gif§ BB#immagineB.gif§ CC#immagineC.gif§ in pratica me li estrae tutti però nell'if riconosce solo AA e non tutti gli altri.. (§ lo uso come ritorno a capo perchè mi dava dei problemi con \n) Ultima modifica di SteR9 : 24-03-2005 alle 23:25. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2001
Città: Dundee, Scotland
Messaggi: 467
|
Non ho capito cosa vuoi fare con questo if:
if(aula.equals("G")){ System.out.println("uguale"); } Estrai aula e image, e l'if? |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
Quote:
|
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
ho provato a controllare la lunghezza di aula e tutte tranne la prima sono più lunghe di 2 caratteri che però non vengono visualizzati.. che cavolo di caratteri sono?!
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
sì non penso neanch'io, ti avevo chiesto il contenuto del file che leggi, non del sorgente ![]() ho visto che l'hai postato dopo ![]() |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
nella system.out che c'e' nel codice come stampa i codici aula? sono corretti? |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Quote:
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Apr 2001
Città: Dundee, Scotland
Messaggi: 467
|
Quote:
|
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
prova a farti un Sistem.out carattere per carattere quando li leggi in questo modo puoi vedere i caratteri letti se sono giusti o meno...
Poi perchè non usi readLine() non ti dorebba dare problemi con gli invii. Ciao |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
|
cmq il ritorno a capo dipende dalla piattaforma....
a volte si usa <CR>, a volte <CR>+<LF>(Carriage Return + Line Feed)... su windows se nn erro dovrebbe essere \r\n..... il codice ASCII dovrebbe essere 13 x il CR e 10 x LF.....
__________________
![]() |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
facendo con System.out è tutto ok..
il ritorno a capo che problemi potrebbe dare? tglman non posso usare readLine perchè sto programmando in j2me e funziona solo read.. |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
|
il problema stava proprio nel ritorno a capo..ho tolto tutti i ritorno a capo dal file tanto c'è § che mi divide..
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Apr 2001
Città: Dundee, Scotland
Messaggi: 467
|
Quote:
|
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
|
infatti bastava mettere nell 'if di non fare niente quando ricevevi il carattere ASCII 13 e il carattere ASCII 10
__________________
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:53.