寻找FileHelpers主细节方向

本文关键字:方向 细节 FileHelpers 寻找 | 更新日期: 2023-09-27 18:17:34

我有一个这种格式的。csv文件。我正在使用FileHelpers库,但我需要一些方向解析文件到一个单一的记录,以便集合可以插入到数据库中。在这一点上,我认为"Total"行可以忽略,但仍在等待确认。

 94506 - DANVILLE CA,,,,,,,,,
 Route,SFDU ,MFDU ,Total ,Names ,Income ,Home ,Age ,PHWC ,Sat 
 C055, 879, 0, 359, 442, $100, $100, 60, 21%, S
 Total, 0, 0, 0, 0,,,,,
,,,,,,,,,
 94518 - CONCORD CA,,,,,,,,,
 Route,SFDU ,MFDU ,Total ,Names ,Income ,Home ,Age ,PHWC ,Sat 
 C086, 578, 33, 785, 237, $100, $100, 49, 22%, S
 C087, 478, 37, 733, 337, $100, $100, 49, 22%, S 
 C088, 578, 36, 798, 437, $100, $100, 49, 22%, S
 Total, 0, 0, 0, 0,,,,,

寻找FileHelpers主细节方向

这里有一个简单的例子

基本上,你需要定义两个类,一个为你的主:
[DelimitedRecord("-")]
public class Master
{
   public string Zip;
   public string City;
}

和另一个为您的细节

[DelimitedRecord(",")]
public class Orders
{
   public string Route;
   public int SFDU;
   public int MFDU;
   public int Total;
   public int Names;
   public string Income;
   // etc ...
}

然后你需要一个选择器来决定哪个是哪个

RecordAction ExampleSelector(string record)
{
   if (record[0] == 'C') // if the line starts with a C
      return RecordAction.Detail;
   else if Char.IsNumber(record[0]) // if the line starts with a number
      return RecordAction.Master;
   else // skip anything else, e.g., Route, Total, etc.
      return Record.Action.Skip;
}