Analysieren von Textdateien mit dem TextFieldParser-Objekt (Visual Basic)

Das TextFieldParser-Objekt erlaubt Ihnen, sehr große Dateien zu analysieren und zu bearbeiten, die als Text mit getrennter Spaltenbreite strukturiert sind, wie Protokolldateien oder ältere Datenbankinformationen. Das Analysieren einer Textdatei mit TextFieldParser ähnelt dem Durchlaufen einer Textdatei, während die Analysemethode zum Extrahieren von Textfeldern den Methoden zur Zeichenfolgenbearbeitung ähnelt, die verwendet werden, um gesperrte Zeichenfolgen mit Token zu erstellen.

Analysieren von verschiedenen Typen von Textdateien

Textdateien können Felder verschiedener Breite besitzen, die durch ein Zeichen wie ein Komma oder ein Tabstoppzeichen getrennt wurden. Definieren Sie TextFieldType und das Trennzeichen wie im folgenden Beispiel, das die SetDelimiters-Methode verwendet, um eine durch Tabstoppzeichen getrennte Textdatei zu definieren:

testReader.SetDelimiters(vbTab)

Andere Textdateien haben vielleicht feste Feldbreiten. In solchen Fällen müssen Sie den TextFieldType als FixedWidth sowie die Breite jedes Felds definieren, wie im folgenden Beispiel gezeigt. In diesem Beispiel wird die SetFieldWidths-Methode verwendet, um die Textspalten zu definieren: Die erste Spalte ist 5 Zeichen breit, die zweite 10, die dritte 11 und die vierte ist von variabler Breite.

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

Sobald das Format definiert ist, können Sie Dateien mithilfe der ReadFields-Methode durchlaufen, um jede Zeile einzeln zu verarbeiten.

Wenn ein Feld nicht dem angegebenen Format entspricht, wird eine MalformedLineException-Ausnahme ausgelöst. Wenn diese Ausnahmen ausgelöst werden, enthalten die Eigenschaften ErrorLine und ErrorLineNumber den Text, der die Ausnahme auslöst, sowie die Zeilennummer des Texts.

Analysieren von Dateien mit mehreren Formaten

Die PeekChars-Methode des TextFieldParser-Objekts kann verwendet werden, um jede Datei vor dem Lesen zu überprüfen, was Ihnen erlaubt, mehrere Formate für die Felder zu definieren und entsprechend darauf zu reagieren. Weitere Informationen finden Sie unter Gewusst wie: Lesen aus Textdateien mit mehreren Formaten.

Siehe auch

OpenTextFieldParser
TextFieldParser
PeekChars
ReadFields
CommentTokens
Delimiters
ErrorLine
ErrorLineNumber
FieldWidths
HasFieldsEnclosedInQuotes
LineNumber
TextFieldType
TrimWhiteSpace
SetDelimiters
SetFieldWidths