Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
[Java] Conteggio righe di un file per interrompere ciclo for
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
sevenjeak
Semidio
Semidio


Registrato: 04/02/08 22:05
Messaggi: 308
Residenza: Roma

MessaggioInviato: 10 Apr 2009 14:36    Oggetto: [Java] Conteggio righe di un file per interrompere ciclo for Rispondi citando

Salve utenti.

Ho fatto un piccolo programma in java, che in poche palore legge il contenuto del file utilizzando la classe BufferRead cosi impostato:
Codice:
bufferReader _file = new FileReader("nome_file.txt");

per leggere il contenuto di ogni righa utilizzo un ciclo for, che stampa in input una righa per ogni righa del file, ora per poter fermare il ciclo dovrei effettivamente sapere il numero di righe scritte all'interno del file, esiste qualche medodo o qualche rimedio per contare le righe all'interno del file di testo (possibilemente sempre utilizzando il bufferReader)?
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 11 Apr 2009 17:31    Oggetto: Rispondi citando

Non ti serve sapere il numero di righe perchè se leggi riga per riga con readLine ti ritrovi null quando hai finito.

Prova un po' così:
Codice:

...
FileReader fileReader = new FileReader("nome_file.txt");
BufferedReader fileBufereReader = new BufferedReader(fileReader );
String s;
      
while ((s=bfr.readLine())!=null)
{
   System.out.println(s);
}
...
Top
Profilo Invia messaggio privato
sevenjeak
Semidio
Semidio


Registrato: 04/02/08 22:05
Messaggi: 308
Residenza: Roma

MessaggioInviato: 11 Apr 2009 18:05    Oggetto: Rispondi citando

Ok, ora provo il codice.

Cmq se io al posto del while vorrei utilizzare il for?
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 11 Apr 2009 18:10    Oggetto: Rispondi citando

Perchè vuoi usare un ciclo for quando concettualmente devi iterare mentre hai righe e non "per il numero di righe"?
Top
Profilo Invia messaggio privato
sevenjeak
Semidio
Semidio


Registrato: 04/02/08 22:05
Messaggi: 308
Residenza: Roma

MessaggioInviato: 11 Apr 2009 18:16    Oggetto: Rispondi citando

Il codice funzione, vorrei sapere solamente se il codice va anche con il ciclo for
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 11 Apr 2009 18:22    Oggetto: Rispondi citando

Sì, puoi usare il ciclo così:
Codice:

...
for (;(s=bfr.readLine())!=null;)
{
}

...

ma di fatto lo stai usando come un while.
Fare un for senza sapere quanto deve girare è un po' dura...
Top
Profilo Invia messaggio privato
sevenjeak
Semidio
Semidio


Registrato: 04/02/08 22:05
Messaggi: 308
Residenza: Roma

MessaggioInviato: 11 Apr 2009 19:12    Oggetto: Rispondi citando

Ok, mi interessava sapere solo se il ciclo haveva un operazione di inizializzazione e di inclemento.

cmq utilizo il while per il mio problema.

Grazie per l'aiuto.
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 11 Apr 2009 19:18    Oggetto: Rispondi citando

Il for in java e in c/c++ in realtà è un while riscritto.
L'uso normale e:
Codice:

for (init;condition;alter)

dove in init inizializzi separate da virgole le variabili, condition è la condizione per cui il ciclo gira, l'alter è la modifica delle variabili.
Nessuna sezione è mandatory quindi può essere omessa.
Per assurdo il seguante è un ciclo for valido:
Codice:

int x=0;
int i;
for (i=0;x!=18;--i)
{
  ...
  ++x;
  ...
}

e il ciclo termina quando x vale 18.
Top
Profilo Invia messaggio privato
sevenjeak
Semidio
Semidio


Registrato: 04/02/08 22:05
Messaggi: 308
Residenza: Roma

MessaggioInviato: 12 Apr 2009 22:15    Oggetto: Rispondi citando

ok, ho capito.

grazie a tutti e due.
Top
Profilo Invia messaggio privato HomePage
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11802
Residenza: Tokelau

MessaggioInviato: 14 Apr 2009 11:08    Oggetto: Rispondi

sevenjeak ha scritto:
grazie a tutti e due.


intendeva "grazie al while e al for" Laughing Laughing Laughing
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi