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()
返回
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
方法的任务示例。
功能 | 查看 |
---|---|
从带分隔符的文件读取 | 如何:读取逗号分隔的文本文件 |
从固定宽度的文件读取 | 如何:读取固定宽度的文本文件 |