Анализ текстовых файлов с помощью объекта 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
записывается текст, вызвавший исключение, и номер строки, в которой находится этот текст.
Анализ файлов с содержимым в нескольких форматах
Метод PeekChars
объекта TextFieldParser
можно использовать для проверки каждого поля до его чтения, что позволяет определить несколько форматов для полей и отреагировать соответствующим образом. Дополнительные сведения см. в разделе Практическое руководство. Чтение из текстовых файлов различных форматов.