Analisi dei file di testo con l'oggetto TextFieldParser
Aggiornamento: Luglio 2008
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 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
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à
Riferimenti
Metodo My.Computer.FileSystem.OpenTextFieldParser
Metodo TextFieldParser.PeekChars
Metodo TextFieldParser.ReadFields
Proprietà TextFieldParser.CommentTokens
Proprietà TextFieldParser.Delimiters
Proprietà TextFieldParser.ErrorLine
Proprietà TextFieldParser.ErrorLineNumber
Proprietà TextFieldParser.FieldWidths
Proprietà TextFieldParser.HasFieldsEnclosedInQuotes
Proprietà TextFieldParser.LineNumber
Proprietà TextFieldParser.TextFieldType
Proprietà TextFieldParser.TrimWhiteSpace
Metodo TextFieldParser.SetDelimiters
Metodo TextFieldParser.SetFieldWidths
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Luglio 2008 |
Aggiornato l'esempio di codice SetFieldWidths e i relativi commenti. |
Commenti e suggerimenti dei clienti. |