|
||||
|
|
#1 (permalink) |
|
Neofita della community ![]()
84 Messaggi
![]() |
Errore in lettura file txt
ciao a tutti,
ho un problema che no riesco a capire! sto cercando di leggendo un file e memorizzando parte del suo contenuto in una variabile. però mi va in loop infinito!!!! privatevoid button2_Click(object sender, EventArgs e) { int contRighe = 1; Boolean bfound = true; List<string> documenti = newList<string>(); //apro file StreamReader sr = newStreamReader(textBox1.Text); int Inizio = Int32.Parse(RigaIniz.Text); int Fine = Int32.Parse(RigaFinale.Text); try { while (!sr.EndOfStream) { if (contRighe > Inizio & contRighe < Fine) { documenti.Add(sr.ReadLine()); } contRighe++; } } finally { sr.Close(); } } mi dire cosa sto sbagliando??? non sto riuscendo a uscirne pechè se tolgo la condizione & mi fuzniona!!!!!!! |
|
|
|
|
|
#2 (permalink) |
|
Collega della community ![]() ![]()
909 Messaggi
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Se analizzi il tuo codice, ti accorgi che:
Il Ciclo continua fino a quando non arrivi alla fine del Flusso (!sr.EndOfStream), ma nel Ciclo, tu aumenti solamente il valore di ContRighe, ed il Flusso rimane sempre al punto dell'ultima lettura .ReadLine, non arriverà mai alla fine. Anche la condizione nidificata (IF), non ti va a leggere la riga partendo dalla posizione che vuoi tu, perchè non c'è spostamento di Flusso al di fuori di tale condizione, la prima volta che richiami la ReadLine ti leggerà sempre la prima riga, perchè la posizione di lettura nel flusso sarà alll'inizio. Prova ad aggiungere un Else alla condizione nidificata, ed aggiungi una ulteriore lettura di Riga (a vuoto), in questo modo la posizione all'interno del Flusso avanzerà. Per essere ancora più preciso, aggiungi anche che se ContRighe è maggiore di Fine, il ciclo può fermarsi... sarebbe inutile continuare a leggere fino alla fine del Flusso se hai già recuperato le righe che ti interessano.
__________________
VB.Net: {Extension Methods} {Lambda Expressions} HowTo: {Windows 7 - Installare il Sistema su C e la cartella Users su D} è il metodo migliore per ringraziare chi ti è stato di aiuto.
|
|
|
|
![]() |
| Strumenti della discussione | |
| Modalità di visualizzazione | |
|
|
Tutti gli orari sono GMT +2. Attualmente sono le 09:47.










è il metodo migliore per ringraziare chi ti è stato di aiuto.
Modalità lineare

