Analisi dei file di testo con l'oggetto TextFieldParser (Visual Basic)
L'oggetto TextFieldParser consente di analizzare ed elaborare file di grandi dimensioni strutturati come colonne di testo a larghezza delimitata, ad esempio i file di log e le informazioni di database legacy. L'analisi di un file di testo con TextFieldParser è simile all'esecuzione di un'operazione di scorrimento in un file di testo, mentre l'uso del metodo di analisi per l'estrazione dei campi di testo è analogo ai metodi di manipolazione delle stringhe utilizzati per rappresentare le stringhe delimitate in token di dati.
Analisi dei diversi tipi di file di testo
I file di testo possono contenere campi di larghezza diversa delimitati da caratteri, ad esempio da una virgola o da uno spazio di tabulazione. Definire TextFieldType e il delimitatore, come mostrato nell'esempio seguente, dove viene utilizzato il metodo SetDelimiters per definire un file di testo delimitato da tabulazione.
testReader.SetDelimiters(vbTab)
Altri file di testo potrebbero contenere larghezze di campo fisse. In questi casi è necessario definire il TextFieldType come FixedWidth e definire la larghezza di ogni campo, come nell'esempio riportato di seguito. In questo esempio viene utilizzato il metodo SetFieldWidths per definire le colonne di testo: la prima colonna è di 5 caratteri, la seconda è 10, il terzo è 11 e la quarta è di larghezza variabile.
testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Una volta definito il formato, è possibile scorrere in ciclo il file utilizzando il metodo ReadFields per elaborare una riga per volta.
Se un campo non corrisponde al formato specificato viene generata l'eccezione MalformedLineException. Quando vengono generate tali eccezioni, le proprietà ErrorLine e ErrorLineNumber contengono il testo che causa l'eccezione nonché il numero di riga corrispondente.
Analisi dei file con più formati
Il metodo PeekChars dell'oggetto TextFieldParser può essere utilizzato per controllare ogni campo prima che venga letto, consentendo così di definire più formati per i campi e reagire di conseguenza. Per ulteriori informazioni, vedere Procedura: leggere file di testo con più formati in Visual Basic.
Vedere anche
Attività
Troubleshooting Exceptions: Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException