Procedura: Leggere da file di testo con valori delimitati da virgole in Visual Basic
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 con valori delimitati da virgole
Creare un nuovo
TextFieldParser
. Il codice riportato di seguito crea l'oggettoTextFieldParser
denominatoMyReader
e apre il filetest.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
comeDelimited
e il delimitatore come ",".MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(",")
Eseguire il ciclo attraverso i campi nel file. Se sono presenti righe danneggiate, segnalare un errore e continuare l'analisi. Nel codice riportato di seguito viene eseguito un ciclo attraverso il file, visualizzando ogni campo e segnalando eventuali campi formattati 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
eUsing
conEnd While
edEnd Using
.End While End Using
Esempio
Nell'esempio riportato di seguito viene letto il file test.txt
.
Using MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(
"C:\TestFolder\test.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:
Impossibile analizzare la riga usando il formato specificato (MalformedLineException). Il messaggio di eccezione specifica la riga che ha generato l'eccezione, mentre alla proprietà ErrorLine viene assegnato il testo contenuto nella riga.
File specificato inesistente (FileNotFoundException).
Un contesto di attendibilità parziale in cui gli utenti non dispongono di autorizzazioni sufficienti per accedere al file (SecurityException).
Percorso del file troppo lungo (PathTooLongException).
L'utente non dispone di autorizzazioni sufficienti per accedere al file (UnauthorizedAccessException).
Vedi anche
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Procedura: leggere da file di testo a larghezza fissa
- Procedura: Leggere da file di testo con più formati
- Analisi dei file di testo con l'oggetto TextFieldParser
- Procedura dettagliata: modifica di file e directory in Visual Basic
- Risoluzione dei problemi: lettura e scrittura nei file di testo