利用该 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
可用于在读取之前检查每个字段,从而可以定义字段的多种格式并相应地做出反应。 有关详细信息,请参阅 如何:从具有多种格式的文本文件中读取。