65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.75/5 (56投票s)

2003年3月9日

2分钟阅读

viewsIcon

250129

downloadIcon

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 日
© . All rights reserved.