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


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

Объект 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 содержат текст, вызвавший исключение, и номер строки этого текста.

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

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

См. также