TextFieldParser.ReadFields 方法

更新:2007 年 11 月

读取当前行上的所有字段,将这些字段作为字符串数组返回,然后使光标前进到包含数据的下一行。

' Usage
Dim value As String() = TextFieldParserObject.ReadFields()
' Declaration
Public Function ReadFields() As String()

返回值

String ().

异常

下面的情况可能会导致引发异常:

备注

为了允许用户分析多种格式的文本文件,每次调用 ReadFields 方法时,该方法会检查 TextFieldType、Delimiters 和 FieldWidths 的值(如果指定了这些值)。用户需要根据需要正确配置 TextFieldType 和 FieldWidths 或 Delimiters 属性。如果 TextFieldType 设置为 Delimited 而没有设置 Delimiters,或者,如果 TextFieldType 设置为 FixedWidth 而没有设置 FieldWidths,则会引发异常。

如果 ReadFields 遇到空白行,则会跳过这些空白行,然后返回下一个非空白行。

说明:

如果 ReadFields 方法不能分析当前行,则会引发异常,而且不移到下一行。这使您的应用程序能够尝试重新分析该行。

任务

下表列出了涉及 ReadFields 方法的任务的示例。

要执行的操作

请参见

从分隔的文件读取

如何:在 Visual Basic 中读取逗号分隔的文本文件

从固定宽度的文件中读取

如何:在 Visual Basic 中读取固定宽度的文本文件

示例

此示例使用 ReadFields 方法从文件 ParserText.txt 读取,然后将字段写入 Testfile.txt。

Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\ParserText.txt")
    MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
    MyReader.Delimiters = New String() {","}
    Dim currentRow As String()
    While Not MyReader.EndOfData
        Try
            currentRow = MyReader.ReadFields()
            For Each currentField As String In currentRow
                My.Computer.FileSystem.WriteAllText _
                ("C://testfile.txt", currentField, True)
            Next
        Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
            MsgBox("Line " & ex.Message & " is invalid.  Skipping")
        End Try
    End While
End Using

要求

命名空间:Microsoft.VisualBasic.FileIO

类:TextFieldParser

**程序集:**Visual Basic 运行时库(位于 Microsoft.VisualBasic.dll 中)

权限

下面的权限是必需的:

权限

说明

FileIOPermission

关联枚举:Unrestricted

SecurityPermission

关联枚举:ControlEvidence

有关更多信息,请参见代码访问安全性请求权限

请参见

任务

如何:在 Visual Basic 中读取逗号分隔的文本文件

如何:在 Visual Basic 中读取固定宽度的文本文件

如何:在 Visual Basic 中读取具有多种格式的文本文件

概念

使用 TextFieldParser 对象分析文本文件

参考

TextFieldParser 对象

TextFieldParser.ReadFields

TextFieldParser.TextFieldType 属性

TextFieldParser.FieldWidths 属性

TextFieldParser.Delimiters 属性

TextFieldParser.ReadLine 方法