Freigeben über


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

Mit dem TextFieldParser Objekt können Sie sehr große Dateien analysieren und verarbeiten, die als Spalten mit getrennter Breite strukturiert sind, z. B. Protokolldateien oder Legacydatenbankinformationen. Das Analysieren einer Textdatei mit TextFieldParser ähnelt dem Iterieren über eine Textdatei, während die Analysemethode zum Extrahieren von Textfeldern vergleichbar ist mit den Methoden zur Zeichenfolgenmanipulation, die zum Tokenisieren von durch Begrenzungszeichen getrennten Zeichenfolgen verwendet werden.

Analysieren verschiedener Arten 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 können über Feldbreiten verfügen, die festgelegt sind. In solchen Fällen müssen Sie das TextFieldType als FixedWidth definieren und die Breite der einzelnen Felder festlegen, wie im folgenden Beispiel. In diesem Beispiel wird die SetFieldWidths Methode verwendet, um die Textspalten zu definieren: Die erste Spalte ist 5 Zeichen breit, die zweite ist 10, der dritte ist 11, und der vierte ist von variabler Breite.

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

Nachdem das Format definiert wurde, können Sie die Datei mithilfe der ReadFields Methode durchlaufen, um jede Zeile wiederum zu verarbeiten.

Wenn ein Feld nicht mit dem angegebenen Format übereinstimmt, wird eine MalformedLineException Ausnahme ausgelöst. Wenn solche Ausnahmen ausgelöst werden, enthalten die Eigenschaften ErrorLine und ErrorLineNumber den Text, der die Ausnahme verursacht, und die Zeilennummer dieses Textes.

Analysieren von Dateien mit mehreren Formaten

Die PeekChars Methode des TextFieldParser Objekts kann verwendet werden, um jedes Feld vor dem Lesen zu überprüfen, sodass Sie mehrere Formate für die Felder definieren und entsprechend reagieren können. Weitere Informationen finden Sie unter So geht's: Lesen aus Textdateien mit mehreren Formaten.

Siehe auch