文本文件映射

时间:2012-01-14 08:09:30

标签: c# .net text-parsing

我的文本文件总是采用相同的文本格式(我没有文本文件的xsd)。

我想将数据从它映射到某个类。

是否有一些标准方法可以这样做,除了开始编写字符串解析器或一些复杂的REGEX。

我真的不想使用文本解析器,因为我们有几个人正在研究这个问题,我们每个人都有时间了解对方正在做什么。

Example

感谢。

3 个答案:

答案 0 :(得分:0)

解决方案:

  1. 将该文件的格式更改为标签格式,如制表符分隔或逗号分隔的csv文件。
  2. 然后使用许多库来读取该文件或将其导入数据库并使用ORM(如Entity Framework)来读取它们

答案 1 :(得分:0)

如果您有特殊格式,则需要您自己的解析器

如果格式是标准格式,如 xml,yml,json,csv 等,则解析库将始终以您的语言提供。

<强>更新

从您提供的示例看来,格式似乎更像是 INI文件,但条目是自定义的。您可以扩展 NINI

答案 2 :(得分:0)

假设您无法将传入的文件格式更改为更易于机器读取的内容,那么您可能需要编写自己的自定义解析器。最好的方法是使用每个字段的相应数据格式(自定义枚举,日期时间,版本等)创建表示和存储所有不同类型数据的类。

尝试划分代码。例如,在这里采取以下几行:

272 298 9.663 18.665 -90.000 48 0 13 2 10 5 20009 1 2 1 257 "C4207" 0 0 1000 0 0

这可以是单个类或结构。它的构造函数可以接受上面的字符串作为参数,并且每个值都可以解析为不同的本地成员。同一个类可以有一个Save()或ToString()方法,如果需要,可以将所有值转换回字符串。

然后,父类将根据文件中的条目数包含上述结构的数组。