Analysieren von Textdateien mit dem TextFieldParser-Objekt (Visual Basic)
Mit dem TextFieldParser-Objekt können Sie sehr große Dateien analysieren und verarbeiten, die Textspalten mit Trennzeichen enthalten, z. B. Protokolldateien oder ältere Datenbankinformationen.Die Analyse einer Textdatei mit TextFieldParser ähnelt dem Durchlaufen einer Textdatei, während die Verarbeitungsmethode für die Extrahierung von Textfeldern mit Methoden zum Bearbeiten von Zeichenfolgen vergleichbar ist.
Analysieren von verschiedenen Typen von Textdateien
Textdateien können Felder verschiedener Breite enthalten, die mit Trennzeichen wie Kommas oder Tabstoppzeichen getrennt sind.Definieren Sie TextFieldType und das Trennzeichen, wie nachfolgend gezeigt. Im Beispiel wird die SetDelimiters-Methode zum Definieren einer tabstoppgetrennten Textdatei verwendet:
testReader.SetDelimiters(vbTab)
Textdateien können auch Felder mit fester Breite enthalten.In solchen Fällen müssen Sie den TextFieldType als FixedWidth definieren und die Breite jedes einzelnen Feldes angeben, wie nachfolgend gezeigt.Im Beispiel wird die SetFieldWidths-Methode zum Definieren der Textspalten verwendet: die erste Spalte ist 5 Zeichen breit, die zweite 10, die dritte 11 und die vierte Spalte weist eine variable Breite auf.
testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Nach der Definition des Formats können Sie die Datei durchlaufen und mit der ReadFields-Methode jede Zeile einzeln verarbeiten.
Wenn ein Feld nicht dem angegebenen Format entspricht, wird eine MalformedLineException-Ausnahme ausgelöst.Beim Auslösen solcher Ausnahmen enthalten die ErrorLine-Eigenschaft und die ErrorLineNumber-Eigenschaft den Text, der die Ausnahme verursacht hat, und die Zeilennummer dieses Textes.
Analysieren von Dateien mit mehreren Formaten
Mithilfe der PeekChars-Methode des TextFieldParser-Objekts kann jedes Feld vor dem Lesen überprüft werden. So können mehrere Formate für die Felder definiert und entsprechende Aktionen veranlasst werden.Weitere Informationen finden Sie unter Gewusst wie: Lesen aus Textdateien mit mehreren Formaten in Visual Basic.
Siehe auch
Aufgaben
Problembehandlung bei Ausnahmen: Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException