FileHelper转义分隔符
本文关键字:分隔符 转义 FileHelper | 更新日期: 2023-09-27 18:29:34
我使用FileHelper 2.0来解析csv数据。有没有任何选项可以让filehelper正确处理转义分隔符?它可以将字段标识为数据,而不是分隔符。
我们的csv格式:转义逗号(,),带'',
示例数据:
name,lastname
nico'',le,opeka
当前代码:
[DelimitedRecord(",")]
public class contactTemplate
{
public string firstName;
public string lastName;
}
如何获取firstName=nico,le和lastName=opeka。FileHelpers以逗号分隔,现在返回:
firstName->nico''
lastName->,le,opeka
首先,您需要让所有字段都有引号。
[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;
}
}
你可以在这里找到一些代码来开始你的自定义分割功能。