Поделиться через


Анализ текстовых файлов с помощью объекта TextFieldParser

Обновлен: Июль 2008

Объект TextFieldParser позволяет анализировать и обрабатывать файлы очень большого размера, по своей структуре имеющие вид столбцов текста с разделителями, например файлы журнала или старые базы данных. Анализ текстового файла с помощью объекта TextFieldParser похож на итерацию содержимого текстового файла, а метод анализа, связанный с извлечением полей текста, напоминает методы работы со строками, используемые для маркировки разделенных строк.

Анализ различных типов текстовых файлов

Текстовые файлы могут иметь поля различной ширины, разделенные тем или иными символом, например запятой или знаком табуляции. Определите TextFieldType и разделитель, как в следующем примере, в котором с помощью метода SetDelimiters определяется текстовый файл со знаком табуляции в качестве разделителя:

testReader.SetDelimiters(vbTab)

Другие текстовые файлы могут иметь поля фиксированной ширины. В этом случае необходимо определить TextFieldType как FixedWidth и задать ширину каждого поля, как в следующем примере. В этом примере столбцы текста определяются с помощью метода SetFieldWidths: первый столбец имеет ширину 5 символов, второй 10, третий 11, а четвертый столбец имеет переменную ширину.

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

После определения формата можно обработать весь файл в цикле, используя для обработки каждой строки метод ReadFields.

Если поле не соответствует указанному формату, возникает исключение MalformedLineException. При возникновении таких исключений в свойства ErrorLine и ErrorLineNumber записывается текст, вызвавший исключение и номер строки, на которой находится этот текст.

Анализ файлов с содержимым в нескольких форматах

Метод PeekChars объекта TextFieldParser может использоваться для проверки каждого поля до его чтения, позволяя определить несколько форматов для полей и реагировать соответствующим образом. Дополнительные сведения см. в разделе Практическое руководство. Чтение текстовых файлов различных форматов в Visual Basic.

См. также

Задачи

Разрешение вопросов, связанных с исключениями: Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException

Ссылки

Метод My.Computer.FileSystem.OpenTextFieldParser

Объект TextFieldParser

Метод TextFieldParser.PeekChars

Метод TextFieldParser.ReadFields

Свойство TextFieldParser.CommentTokens

Свойство TextFieldParser.Delimiters

Свойство TextFieldParser.ErrorLine

Свойство TextFieldParser.ErrorLineNumber

Свойство TextFieldParser.FieldWidths

Свойство TextFieldParser.HasFieldsEnclosedInQuotes

Свойство TextFieldParser.LineNumber

Свойство TextFieldParser.TextFieldType

Свойство TextFieldParser.TrimWhiteSpace

Метод TextFieldParser.SetDelimiters

Метод TextFieldParser.SetFieldWidths

Журнал изменений

Дата

Журнал изменений

Причина

Июль 2008

Обновлены примеры кода SetFieldWidths и комментарии.

Обратная связь от клиента.