gpt4 book ai didi

c# - FileHelper 转义分隔符

转载 作者:太空狗 更新时间:2023-10-29 23:08:19 25 4
gpt4 key购买 nike

我正在使用 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;
}
}

您可以找到一些代码来帮助您开始自定义拆分函数 here .

关于c# - FileHelper 转义分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18529845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com