首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileHelper转义分隔符

FileHelper转义分隔符
EN

Stack Overflow用户
提问于 2013-08-30 09:44:58
回答 1查看 4.7K关注 0票数 6

我正在使用CSV2.0解析我的FileHelper数据。是否有任何选项可供文件助手正确处理转义分隔符?它可以将字段标识为数据而不是分隔符。

我们的csv格式:转义逗号(,)和\,

示例数据:

姓,姓 尼科·勒·奥皮卡

当前代码:

代码语言:javascript
复制
[DelimitedRecord(",")] 
public class contactTemplate
{
  public string firstName;
  public string lastName;
}

怎样才能得到firstName = nico,le和lastName = opeka。FileHelpers用逗号分隔,现在它返回:

firstName -> nico\ lastName ->,le,opeka

EN

回答 1

Stack Overflow用户

发布于 2013-08-30 18:11:59

首先,您需要使所有字段都可选地引用。

代码语言:javascript
复制
[DelimitedRecord(",")] 
public class contactTemplate
{
  [FieldQuoted('"', QuoteMode.OptionalForBoth)]
  public string firstName;
  [FieldQuoted('"', QuoteMode.OptionalForBoth)]
  public string lastName;
}

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

代码语言:javascript
复制
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;
    } 
}

您可以找到一些代码来启动定制的拆分函数here

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18529845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档