[VB] Leggere un file riga per riga con righe vuote

Con questo post riprendo una breve discussione di qualche anno fa, in cui il problema esposto riguardava lo scorrimento di un file di testo “riga per riga”, con la presenza di righe vuote.

Infatti, con il seguente codice, all’arrivo di una riga vuota, l’esecuzione esce dal ciclo:

do
   buf=str.readline
   …
loop while buf=nothing

 

L’altro difetto di questo frammento di codice, anche ammettendo che non esistano righe vuote all’interno delle “righe valide” è che deve esserci una riga vuota alla fine del file, altrimenti non viene rilevata la fine del file e il programma solleva un’eccezione.

La soluzione migliore è questa:

Using sr As New System.IO.StreamReader(nomeFile)
    Do Until sr.EndOfStream
        Try
            Dim sBuf As String = sr.ReadLine
            ‘ fai qualcosa (1)

        Catch ex As Exception
            ‘ gestisci l’eccezione
        End Try
    Loop
End Using

Infatti, l’uso di sr.EndOfStream permette di rilevare la fine effettiva del file, indipendentemente dal contenuto delle righe.

Attenzione che nella sezione Try (1) dovete inserire del codice per leggere il contenuto della riga e se questo contenuto consiste in una riga vuota, dovete scartare la riga (ovvero ignorarla).

Pubblicato il 13 ottobre 2015 su Novità. Aggiungi ai preferiti il collegamento . Lascia un commento.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: