Condividi tramite


Analisi di file di testo con l'oggetto TextFieldParser (Visual Basic)

L'oggetto TextFieldParser consente di analizzare ed elaborare file di dimensioni molto grandi strutturate come colonne delimitate di testo, ad esempio file di log o informazioni sul database legacy. L'analisi di un file di testo con TextFieldParser è simile all'iterazione su un file di testo, mentre il metodo di analisi per estrarre campi di testo è simile ai metodi di manipolazione delle stringhe usati per tokenizzare stringhe delimitate.

Analisi di diversi tipi di file di testo

I file di testo possono avere campi di varie larghezze, delimitati da un carattere, ad esempio una virgola o uno spazio di tabulazioni. Definire TextFieldType e il delimitatore, come nell'esempio seguente, che usa il SetDelimiters metodo per definire un file di testo delimitato da tabulazioni:

testReader.SetDelimiters(vbTab)

Altri file di testo possono avere larghezze di campo fisse. In questi casi, è necessario definire come TextFieldTypeFixedWidth e definire le larghezze di ogni campo, come nell'esempio seguente. In questo esempio viene utilizzato il SetFieldWidths metodo per definire le colonne di testo: la prima colonna è larga 5 caratteri, la seconda è 10, la terza è 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 scorrere il file usando il ReadFields metodo per elaborare ogni riga a sua volta.

Se un campo non corrisponde al formato specificato, viene generata un'eccezione MalformedLineException . Quando vengono generate eccezioni di questo tipo, le ErrorLine proprietà e ErrorLineNumber contengono il testo che causa l'eccezione e il numero di riga del testo.

Analisi di file con più formati

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

Vedere anche