TextFieldParser.ReadFields 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
读取当前行的所有字段,以字符串数组的形式返回这些字段,并将光标前进到包含数据的下一行。
public:
cli::array <System::String ^> ^ ReadFields();
public string[]? ReadFields ();
public string[] ReadFields ();
member this.ReadFields : unit -> string[]
Public Function ReadFields () As 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该方法在每次调用时检查 、 Delimiters和 FieldWidths的值TextFieldType(如果已指定)。 用户需要根据需要正确配置 TextFieldType 和 FieldWidths 或 Delimiters 属性。 如果 TextFieldType 设置为 Delimited,但 Delimiters 未设置 ,或者 如果 TextFieldType 设置为 FixedWidth 和 FieldWidths,则会引发异常。
如果 ReadFields 遇到空行,则跳过这些行,并返回下一个非空行。
ReadFields如果 方法无法分析当前行,则会引发异常,并且不会移动到下一行。 这使应用程序能够再次尝试分析该行。
下表列出了涉及 ReadFields 方法的任务示例。
| 功能 | 查看 |
|---|---|
| 从带分隔符的文件读取 | 如何:读取逗号分隔的文本文件 |
| 从固定宽度的文件读取 | 如何:读取固定宽度的文本文件 |