Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Объект TextFieldParser позволяет легко и эффективно анализировать структурированные текстовые файлы, такие как журналы.
Свойство TextFieldType определяет, является ли анализируемый файл файлом с разделителями или файлом с полями фиксированной ширины текста. В текстовом файле фиксированной ширины поле в конце может иметь переменную ширину. Чтобы указать, что поле в конце имеет переменную ширину, определите ее ширину меньше или равно нулю.
Анализ текстового файла фиксированной ширины
Создайте новый
TextFieldParser. Следующий код создаетTextFieldParser, который называетсяReader, и открывает файлtest.log.Using Reader As New Microsoft.VisualBasic. FileIO.TextFieldParser("C:\TestFolder\test.log")Определите
TextFieldTypeсвойство какFixedWidth, определяя ширину и формат. Следующий код определяет столбцы текста; первый — 5 символов ширины, второй 10, третий 11, а четвертый — переменной ширины.Reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth Reader.SetFieldWidths(5, 10, 11, -1)Прокрутите поля в файле. Если какие-либо строки повреждены, сообщите об ошибке и продолжайте синтаксический анализ.
Dim currentRow As String() While Not Reader.EndOfData Try currentRow = Reader.ReadFields() Dim currentField As String For Each currentField In currentRow MsgBox(currentField) Next Catch ex As Microsoft.VisualBasic. FileIO.MalformedLineException MsgBox("Line " & ex.Message & "is not valid and will be skipped.") End TryЗакройте блоки
WhileиUsingс помощьюEnd WhileиEnd Using.End While End Using
Пример
В этом примере считывается из файла test.log.
Using Reader As New Microsoft.VisualBasic.FileIO.
TextFieldParser("C:\TestFolder\test.log")
Reader.TextFieldType =
Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Reader.SetFieldWidths(5, 10, 11, -1)
Dim currentRow As String()
While Not Reader.EndOfData
Try
currentRow = Reader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
"is not valid and will be skipped.")
End Try
End While
End Using
Надежное программирование
Следующие условия могут вызвать исключение:
Не удается проанализировать строку с помощью указанного формата (MalformedLineException). Сообщение об исключении указывает строку, вызывающую исключение, а свойство ErrorLine назначается тексту, содержащемуся в строке.
Указанный файл не существует (FileNotFoundException).
Ситуация с частичным доверием, в которой у пользователя нет достаточных разрешений для доступа к файлу. (SecurityException).
Путь слишком длинный (PathTooLongException).
У пользователя нет достаточных разрешений для доступа к файлу (UnauthorizedAccessException).
См. также
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Как читать из текстовых файлов Comma-Delimited
- Практическое руководство. Чтение из текстовых файлов с несколькими форматами
- Анализ текстовых файлов с помощью объекта TextFieldParser
- Пошаговое руководство. Управление файлами и каталогами в Visual Basic
- Устранение неполадок: чтение и запись в текстовые файлы