使用 TextFieldParser 对象分析文本文件 (Visual Basic)

利用该 TextFieldParser 对象,可以分析和处理以分隔宽度的文本列(如日志文件或旧数据库信息)构造的非常大的文件。 使用 TextFieldParser 分析文本文件与循环访问文本文件相似,而提取文本字段的分析方法则与将分隔字符串标记化所使用的字符串操作方法相似。

分析不同类型的文本文件

文本文件可能具有各种宽度的字段,用逗号或制表符空格等字符分隔。 定义 TextFieldType 和分隔符,如以下示例所示,该示例使用 SetDelimiters 该方法定义制表符分隔的文本文件:

testReader.SetDelimiters(vbTab)

其他文本文件可能具有固定的字段宽度。 在这种情况下,你需要将 TextFieldType 定义为 FixedWidth,并定义每个字段的宽度,如以下示例所示。 此示例使用 SetFieldWidths 该方法定义文本列:第一列宽 5 个字符,第二列宽 10,第三列为 11,第四列为可变宽度。

testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth

定义格式后,可以使用ReadFields方法循环遍历文件,并依次处理每一行。

如果字段与指定的格式不匹配, MalformedLineException 则会引发异常。 引发此类异常时, ErrorLine 属性 ErrorLineNumber 将保留导致异常的文本和该文本的行号。

分析具有多种格式的文件

对象 PeekChars 的方法 TextFieldParser 可用于在读取之前检查每个字段,从而可以定义字段的多种格式并相应地做出反应。 有关详细信息,请参阅 如何:从具有多种格式的文本文件中读取

另请参阅