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.