Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'oggetto TextFieldParser
consente di analizzare in modo semplice ed efficiente i file di testo strutturati, ad esempio i log.
La TextFieldType
proprietà definisce se il file analizzato è un file delimitato o uno con campi a larghezza fissa di testo. In un file di testo a larghezza fissa, il campo alla fine può avere una larghezza variabile. Per specificare che il campo alla fine ha una larghezza variabile, definirlo per avere una larghezza minore o uguale a zero.
Per analizzare un file di testo a larghezza fissa
Creare un nuovo
TextFieldParser
. Il codice seguente crea l'oggettoTextFieldParser
denominatoReader
e apre il filetest.log
.Using Reader As New Microsoft.VisualBasic. FileIO.TextFieldParser("C:\TestFolder\test.log")
Definire la
TextFieldType
proprietà comeFixedWidth
, definendo la larghezza e il formato. Il codice seguente definisce le colonne di testo; il primo è largo 5 caratteri, il secondo 10, il terzo 11 e il quarto è di larghezza variabile.Reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth Reader.SetFieldWidths(5, 10, 11, -1)
Scorrere i campi nel file. Se le righe sono danneggiate, segnalare un errore e continuare l'analisi.
Dim currentRow As String() While Not Reader.EndOfData Try currentRow = Reader.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
eEnd Using
rispettivamente.End While End Using
Esempio
Questo esempio legge dal file test.log
.
Using Reader As New Microsoft.VisualBasic.FileIO.
TextFieldParser("C:\TestFolder\test.log")
Reader.TextFieldType =
Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Reader.SetFieldWidths(5, 10, 11, -1)
Dim currentRow As String()
While Not Reader.EndOfData
Try
currentRow = Reader.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 condizioni seguenti possono causare un'eccezione:
Non è possibile analizzare una riga usando il formato specificato (MalformedLineException). Il messaggio di eccezione specifica la riga che causa l'eccezione, mentre la ErrorLine proprietà viene assegnata al testo contenuto nella riga.
Il file specificato non esiste (FileNotFoundException).
Una situazione di attendibilità parziale in cui l'utente non dispone di autorizzazioni sufficienti per accedere al file. (SecurityException)
Il percorso è troppo lungo (PathTooLongException).
L'utente non dispone di autorizzazioni sufficienti per accedere al file (UnauthorizedAccessException).
Vedere anche
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Procedura: Leggere da Comma-Delimited file di testo
- Procedura: Leggere da file di testo con più formati
- Analisi di file di testo con l'oggetto TextFieldParser
- Procedura dettagliata: Modifica di file e directory in Visual Basic
- Risoluzione dei problemi: lettura e scrittura in file di testo