TextFieldParser.ReadFields 方法

定义

读取当前行的所有字段,以字符串数组的形式返回这些字段,并将光标前进到包含数据的下一行。

public:
 cli::array <System::String ^> ^ ReadFields();
public string[]? ReadFields ();
public string[] ReadFields ();
member this.ReadFields : unit -> string[]
Public Function ReadFields () As String()

返回

String[]

包含当前行的字段值的字符串数组。

例外

不能使用指定格式分析字段。

示例

此示例使用 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

注解

为了允许用户分析采用多种格式的文本文件,ReadFields该方法在每次调用时检查 、 DelimitersFieldWidths的值TextFieldType(如果已指定)。 用户需要根据需要正确配置 TextFieldTypeFieldWidthsDelimiters 属性。 如果 TextFieldType 设置为 Delimited,但 Delimiters 未设置 ,或者 如果 TextFieldType 设置为 FixedWidthFieldWidths,则会引发异常。

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

ReadFields如果 方法无法分析当前行,则会引发异常,并且不会移动到下一行。 这使应用程序能够再次尝试分析该行。

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

功能 查看
从带分隔符的文件读取 如何:读取逗号分隔的文本文件
从固定宽度的文件读取 如何:读取固定宽度的文本文件

适用于

另请参阅