Analysieren von Textdateien mit dem TextFieldParser-Objekt (Visual Basic)Parsing text files with the TextFieldParser object (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.The TextFieldParser object allows you to parse and process very large file that are structured as delimited-width columns of text, such as log files or legacy database information. 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.Parsing a text file with TextFieldParser is similar to iterating over a text file, while the parse method to extract fields of text is similar to string manipulation methods used to tokenize delimited strings.

Analysieren von verschiedenen Typen von TextdateienParsing different types of text files

Textdateien können Felder verschiedener Breite besitzen, die durch ein Zeichen wie ein Komma oder ein Tabstoppzeichen getrennt wurden.Text files may have fields of various width, delimited by a character such as a comma or a tab space. Definieren Sie TextFieldType und das Trennzeichen wie im folgenden Beispiel, das die SetDelimiters-Methode verwendet, um eine durch Tabstoppzeichen getrennte Textdatei zu definieren:Define TextFieldType and the delimiter, as in the following example, which uses the SetDelimiters method to define a tab-delimited text file:

testReader.SetDelimiters(vbTab)

Andere Textdateien haben vielleicht feste Feldbreiten.Other text files may have field widths that are fixed. In solchen Fällen müssen Sie den TextFieldType als FixedWidth sowie die Breite jedes Felds definieren, wie im folgenden Beispiel gezeigt.In such cases, you need to define the TextFieldType as FixedWidth and define the widths of each field, as in the following example. 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.This example uses the SetFieldWidths method to define the columns of text: the first column is 5 characters wide, the second is 10, the third is 11, and the fourth is of variable width.

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.Once the format is defined, you can loop through the file, using the ReadFields method to process each line in turn.

Wenn ein Feld nicht dem angegebenen Format entspricht, wird eine MalformedLineException-Ausnahme ausgelöst.If a field does not match the specified format, a MalformedLineException exception is thrown. Wenn diese Ausnahmen ausgelöst werden, enthalten die Eigenschaften ErrorLine und ErrorLineNumber den Text, der die Ausnahme auslöst, sowie die Zeilennummer des Texts.When such exceptions are thrown, the ErrorLine and ErrorLineNumber properties hold the text causing the exception and the line number of that text.

Analysieren von Dateien mit mehreren FormatenParsing files with multiple formats

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.The PeekChars method of the TextFieldParser object can be used to check each field before reading it, allowing you to define multiple formats for the fields and react accordingly. Weitere Informationen finden Sie unter Gewusst wie: Lesen aus Textdateien mit mehreren Formaten.For more information, see How to: Read From Text Files with Multiple Formats.

Siehe auchSee also

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