TextFieldParser 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供分析结构化文本文件的方法和属性。
public ref class TextFieldParser : IDisposable
public class TextFieldParser : IDisposable
type TextFieldParser = class
interface IDisposable
Public Class TextFieldParser
Implements IDisposable
- 继承
-
TextFieldParser
- 实现
示例
此示例通过制表符分隔的文本文件 Bigfile进行分析。
Using MyReader As New Microsoft.VisualBasic.FileIO.
TextFieldParser("c:\logs\bigfile")
MyReader.TextFieldType =
Microsoft.VisualBasic.FileIO.FieldType.Delimited
MyReader.Delimiters = New String() {vbTab}
Dim currentRow As String()
'Loop through all of the fields in the file.
'If any lines are corrupt, report an error and continue parsing.
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
' Include code here to handle the row.
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
" is invalid. Skipping")
End Try
End While
End Using
注解
对象 TextFieldParser 提供用于分析结构化文本文件的方法和属性。 使用 TextFieldParser 分析文本文件类似于循环访问文本文件,而使用 ReadFields 方法提取文本字段类似于拆分字符串。
TextFieldParser可以分析两种类型的文件:带分隔符或固定宽度的文件。 某些属性(如 Delimiters 和 HasFieldsEnclosedInQuotes )仅在使用带分隔符的文件时有意义,而 FieldWidths 属性仅在处理固定宽度文件时有意义。
下表列出了涉及 Microsoft.VisualBasic.FileIO.TextFieldParser 对象的任务示例。
| 功能 | 查看 |
|---|---|
| 从带分隔符的文本文件读取 | 如何:读取逗号分隔的文本文件 |
| 从固定宽度的文本文件中读取 | 如何:读取固定宽度的文本文件 |
| 从具有多种格式的文本文件中读取 | 如何:读取具有多种格式的文本文件 |
构造函数
| TextFieldParser(Stream, Encoding, Boolean, Boolean) |
初始化 |
| TextFieldParser(Stream, Encoding, Boolean) |
初始化 |
| TextFieldParser(Stream, Encoding) |
初始化 |
| TextFieldParser(Stream) |
初始化 |
| TextFieldParser(String, Encoding, Boolean) |
初始化 |
| TextFieldParser(String, Encoding) |
初始化 |
| TextFieldParser(String) |
初始化 |
| TextFieldParser(TextReader) |
初始化 |
属性
| CommentTokens |
定义注释标记。 注释标记是一个字符串,当位于行首时,指示该行是一个注释并且分析器应该忽略该行。 |
| Delimiters |
定义文本文件的分隔符。 |
| EndOfData |
如果在当前光标位置到文件末尾之间没有非空、非注释行,则返回 |
| ErrorLine |
返回导致最近发生的 MalformedLineException 异常的行。 |
| ErrorLineNumber |
返回导致最近发生的 MalformedLineException 异常的行的行号。 |
| FieldWidths |
表示正在分析的文本文件中每一列的宽度。 |
| HasFieldsEnclosedInQuotes |
指示在分析分隔的文件时是否用引号将字段括起来。 |
| LineNumber |
返回当前行号,如果流中没有更多字符,则返回 -1。 |
| TextFieldType |
指定要分析的文件是分隔的还是固定宽度的。 |
| TrimWhiteSpace |
指示是否应移除字段值中的前导和尾随空白。 |
方法
| Close() |
关闭当前的 |
| Dispose() |
释放由 TextFieldParser 对象使用的资源。 |
| Dispose(Boolean) |
释放由 TextFieldParser 对象使用的资源。 |
| Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
| Finalize() |
允许 TextFieldParser 对象在由垃圾回收功能回收之前尝试释放资源并执行其他清理操作。 |
| GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
| PeekChars(Int32) |
读取指定数目的字符但不前移光标。 |
| ReadFields() |
读取当前行的所有字段,以字符串数组的形式返回这些字段,并将光标前进到包含数据的下一行。 |
| ReadLine() |
将当前行作为字符串返回,并将光标前进到下一行。 |
| ReadToEnd() |
读取文本文件的其余部分并作为一个字符串返回。 |
| SetDelimiters(String[]) |
将读取器的分隔符设为指定的值,并将字段类型设为 |
| SetFieldWidths(Int32[]) |
将读取器的分隔符设置为指定值。 |
| ToString() |
返回表示当前对象的字符串。 (继承自 Object) |
显式接口实现
| IDisposable.Dispose() |
释放由 TextFieldParser 对象使用的资源。 |