1

如果我的英语不好,请原谅...我是巴西人。

FileHelpers 支持分层文件吗?

我使用具有分层记录的平面文件。我在文档中没有找到此功能。

谢谢!艾伦

4

1 回答 1

3

是的,如果有两个级别,您可以使用 MasterDatail 方式,如果您需要解析三个或更多记录格式,则可以使用 MultirecordEngine。

主细节:

http://www.filehelpers.net/example/MasterDetail/SimpleMasterDetail/

对于此文件,客户作为主记录,订单作为详细信息:

10248|VINET|5|04071996|01081996|16071996|3|32.38 
10249|TOMSP|6|05071996|16081996|10071996|1|11.61 
ALFKI;Alfreds Futterkiste;Maria Anders;Sales Representative;Obere Str. 57;Berlin;Germany 
ANATR;Ana Trujillo Emparedados y helados;Ana Trujillo;Owner;Avda. de la Constitución 2222;México D.F.;Mexico 
10250|HANAR|4|08071996|05081996|12071996|2|65.83 
10111314012345 
11101314123456 

你必须使用类似的东西:

RecordAction ExampleSelector(string record)
{
   if (Char.IsLetter(record[0]))
      return RecordAction.Master;
   else
      return RecordAction.Detail;
}

var engine = new MasterDetailEngine<Customers, Orders>(new MasterDetailSelector(ExampleSelector));

// to Read use:
MasterDetails[] res = engine.ReadFile("TestIn.txt");

多记录

http://www.filehelpers.net/example/Advanced/MultiRecordSample/

问候

于 2012-07-27T02:35:22.103 回答