我正在使用CSV2.0解析我的FileHelper数据。是否有任何选项可供文件助手正确处理转义分隔符?它可以将字段标识为数据而不是分隔符。
我们的csv格式:转义逗号(,)和\,
示例数据:
姓,姓 尼科·勒·奥皮卡
当前代码:
[DelimitedRecord(",")]
public class contactTemplate
{
public string firstName;
public string lastName;
}怎样才能得到firstName = nico,le和lastName = opeka。FileHelpers用逗号分隔,现在它返回:
firstName -> nico\ lastName ->,le,opeka
发布于 2013-08-30 18:11:59
首先,您需要使所有字段都可选地引用。
[DelimitedRecord(",")]
public class contactTemplate
{
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string firstName;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string lastName;
}然后,您需要引用包含转义字符的所有字段。为此,您可以使用一个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;
}
}您可以找到一些代码来启动定制的拆分函数here。
https://stackoverflow.com/questions/18529845
复制相似问题