ASC2XXX - 用于解析分隔文本文件的两个类






3.75/5 (56投票s)
2003年3月9日
2分钟阅读

250129

6687
将分隔文本文件转换为 XML 文件或 DataSet 对象。
将分隔文本文件
转换为 DataSet
或 XML 文件
引言
这两个类演示了一种方法:读取分隔文本文件,使用正则表达式解析数据“字段”,并将数据移动到 XML 文件或 DataSet
对象中,以便直接使用。
使用的 .Net 框架类
- System;//用于字符串等
- System.IO;//用于读取和写入流和文件
- System.Xml;//用于创建和写入 XML 文件
- System.Text.RegularExpressions;//用于解析文本文件
- System.Data;//生成 DataSet
演示的概念
- 通过流对象读取和写入文件
- 使用正则表达式解析文本
- 从代码生成
DataSet
并在内存中使用它来填充DataGrid
控件 - 从代码生成 XML 文件
背景
我编写这些类的原因有两个
- 我需要编写一个应用程序来解析 Web 服务器日志文件(采用 W3C 常用日志格式),并将该数据放入 SQL Server 数据库中。
- 我需要一个可以在其他应用程序中重用的类,在需要将数据从 CSV 文本文件移动到数据库时使用。
使用代码
虽然代码非常短,但其中包含大量的注释,并包含指向 MSDN 文章的引用超链接,这些文章更详细地解释了代码中每个点使用的 .Net 类。
这段代码设置为解析 Web 服务器日志文件,但是可以轻松地修改为解析任何分隔文本文件,并且我已在注释中指出了修改的位置。我还包含了一行注释掉的备用正则表达式,可用于解析逗号分隔的文本文件。
演示中提供了一个 samplelog.txt 文件,其中包含一个测试 Web 服务器日志文件。 为了保护隐私,我已篡改了 IP 地址,但是数据直接来自我们 Web 服务器的 Apache 服务器日志。
我最近开始使用 C#,在 C++ 中工作了多年,因此欢迎任何建设性的批评。
历史
- 原始版本:2003 年 2 月 26 日