FileHelper转义分隔符

bro*_*and 5 c# csv filehelpers

我正在使用FileHelper 2.0来解析我的csv数据.filehelper有没有可以正确处理转义分隔符的选项?它可以将字段标识为数据而不是分隔符.

我们的csv格式:使用\来转义逗号(,)

示例数据:

姓名,姓氏

尼科\,文件,opeka

当前代码:

[DelimitedRecord(",")] 
public class contactTemplate
{
  public string firstName;
  public string lastName;
}
Run Code Online (Sandbox Code Playgroud)

我如何获得firstName = nico,le和lastName = opeka.FileHelpers按逗号分割,现在返回:

firstName - > nico \

lastName - >,le,opeka

sha*_*p00 6

首先,您需要选择引用所有字段.

[DelimitedRecord(",")] 
public class contactTemplate
{
  [FieldQuoted('"', QuoteMode.OptionalForBoth)]
  public string firstName;
  [FieldQuoted('"', QuoteMode.OptionalForBoth)]
  public string lastName;
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要引用包含转义字符的所有字段.您可以使用此BeforeReadRecord事件.

FileHelperEngine engine = new FileHelperEngine(typeof(contactTemplate)); 
engine.BeforeReadRecord += BeforeEvent; 

private void BeforeEvent(EngineBase engine, BeforeReadRecordEventArgs e)
{
    if (e.RecordLine.Contains("\"))
    {
        string[] parts = SplitStringRespectingEscapeCharacter(eRecordLine);
        parts = QuoteAnyPartsWhichContainEscapeCharacter(parts);
        parts = RemoveAnyEscapeCharacters(parts);
        e.RecordLine = parts.Join;
    } 
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到一些代码,以帮助您开始自定义拆分功能.