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 sul database legacy. L'analisi di un file di testo con TextFieldParser è simile all'esecuzione di un'iterazione di un file di testo, mentre l'uso del metodo di analisi per l'estrazione dei campi di testo è analogo ai metodi di modifica delle stringhe usati per rappresentare in formato tokene le stringhe delimitate.

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 illustrato nell'esempio seguente, dove viene usato il metodo SetDelimiters per definire un file di testo delimitato da tabulazioni:

testReader.SetDelimiters(vbTab)

Altri file di testo potrebbero contenere larghezze di campo fisse. In questi casi è necessario definire TextFieldType come FixedWidth e stabilire la larghezza di ogni campo, come nell'esempio riportato di seguito. In questo esempio viene usato il metodo SetFieldWidths per definire le colonne di testo: la prima colonna ha una larghezza di 5 caratteri, la seconda di 10, la terza di 11 e la quarta è di larghezza variabile.

testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth

Dopo aver definito il formato, è possibile riprodurre a ciclo continuo il file usando 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 eccezioni di questo genere, le proprietà ErrorLine e ErrorLineNumber contengono il testo che genera l'eccezione e il numero di riga corrispondente.

Analisi dei file con più formati

Il metodo PeekChars dell'oggetto TextFieldParser può essere usato per controllare ogni campo prima che venga letto, consentendo così di definire più formati per i campi e reagire di conseguenza. Per altre informazioni, vedere Procedura: Leggere da file di testo con più formati.

Vedi anche