Procedura: leggere file di testo delimitati da virgola in Visual Basic
Aggiornamento: novembre 2007
L'oggetto TextFieldParser consente di analizzare in modo facile ed efficace i file di testo strutturati, ad esempio i log. La proprietà TextFieldType definisce se si tratta di un file delimitato o di un file con campi di testo a larghezza fissa.
Per analizzare un file di testo delimitato da virgole
Creare un nuovo oggetto TextFieldParser. Nel codice riportato di seguito viene creato l'oggetto TextFieldParser denominato MyReader e viene aperto il file test.txt.
Using MyReader As New _ Microsoft.VisualBasic.FileIO.TextFieldParser _ ("C:\TestFolder\test.txt")
Definire il tipo TextField e il delimitatore. Nel codice riportato di seguito viene definita la proprietà TextFieldType come Delimited e il delimitatore come ",".
MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(",")
Scorrere i campi nel file. Se sono presenti righe danneggiate, segnalare l'errore e continuare l'analisi. Nel codice riportato di seguito viene eseguito un ciclo nel file, visualizzando ciascun campo e segnalando qualsiasi campo formattato in modo errato.
Dim currentRow As String() While Not MyReader.EndOfData Try currentRow = MyReader.ReadFields() Dim currentField As String For Each currentField In currentRow MsgBox(currentField) Next Catch ex As _ Microsoft.VisualBasic.FileIO.MalformedLineException MsgBox("Line " & ex.Message & _ "is not valid and will be skipped.") End Try
Chiudere i blocchi While e Using con End While e End Using.
End While End Using
Esempio
Nell'esempio riportato di seguito la lettura viene eseguita dal file test.txt.
Using MyReader As New _
Microsoft.VisualBasic.FileIO.TextFieldParser("C:\testfile.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & _
"is not valid and will be skipped.")
End Try
End While
End Using
Programmazione efficiente
Le seguenti condizioni possono generare un'eccezione:
Non è possibile analizzare una riga utilizzando il formato specificato (MalformedLineException). Nel messaggio di eccezione viene specificata la riga che ha generato l'eccezione, mentre Proprietà TextFieldParser.ErrorLine viene assegnato al testo contenuto nella riga.
Il file specificato non esiste (FileNotFoundException).
Un contesto di attendibilità parziale in cui gli utenti non dispongono di autorizzazioni sufficienti per accedere al file (SecurityException).
Il percorso è troppo lungo (PathTooLongException).
L'utente non dispone delle autorizzazioni sufficienti per accedere al file (UnauthorizedAccessException).
Vedere anche
Attività
Procedura: leggere file di testo a larghezza fissa in Visual Basic
Procedura: leggere file di testo con più formati in Visual Basic
Procedura dettagliata: modifica di file e directory in Visual Basic
Risoluzione dei problemi: lettura e scrittura nei file di testo
Concetti
Analisi dei file di testo con l'oggetto TextFieldParser