TextFieldParser.ReadFields 方法
更新:2007 年 11 月
读取当前行上的所有字段,将这些字段作为字符串数组返回,然后使光标前进到包含数据的下一行。
' Usage
Dim value As String() = TextFieldParserObject.ReadFields()
' Declaration
Public Function ReadFields() As String()
返回值
String ().
异常
下面的情况可能会导致引发异常:
- 不能使用指定格式分析字段 (MalformedLineException)。
备注
为了允许用户分析多种格式的文本文件,每次调用 ReadFields 方法时,该方法会检查 TextFieldType、Delimiters 和 FieldWidths 的值(如果指定了这些值)。用户需要根据需要正确配置 TextFieldType 和 FieldWidths 或 Delimiters 属性。如果 TextFieldType 设置为 Delimited 而没有设置 Delimiters,或者,如果 TextFieldType 设置为 FixedWidth 而没有设置 FieldWidths,则会引发异常。
如果 ReadFields 遇到空白行,则会跳过这些空白行,然后返回下一个非空白行。
说明: |
---|
如果 ReadFields 方法不能分析当前行,则会引发异常,而且不移到下一行。这使您的应用程序能够尝试重新分析该行。 |
任务
下表列出了涉及 ReadFields 方法的任务的示例。
要执行的操作 |
请参见 |
---|---|
从分隔的文件读取 |
|
从固定宽度的文件中读取 |
示例
此示例使用 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
**程序集:**Visual Basic 运行时库(位于 Microsoft.VisualBasic.dll 中)
权限
下面的权限是必需的:
权限 |
说明 |
---|---|
关联枚举:Unrestricted。 |
|
关联枚举:ControlEvidence。 |
请参见
任务
如何:在 Visual Basic 中读取逗号分隔的文本文件
如何:在 Visual Basic 中读取固定宽度的文本文件
如何:在 Visual Basic 中读取具有多种格式的文本文件
概念
参考
TextFieldParser.TextFieldType 属性