- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 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/
我正在使用 Filehelpers 读取一个简单的 CSV 文件 - 该文件只是一个键值对。 (字符串, int64) 我为此编写的 f# 类型是: type MapVal (key:string,
这是我确定非常容易的事情之一,但我似乎无法解决! 使用 FileHelpers,如何确保导出中的每个字段都包含双引号?我猜有一个属性我可以放在每个字段上,我想在它周围加上双引号,但我看不到它在哪里。
这是我要读取的数据: "Adam C. Emality","1Z620Y1V034826","14.40" "Ethel Baeron","1Z620Y1V034604","15.19" "Donna
我一直在查看 filehelpers 文档,但似乎没有任何内容可以处理列中的空值。我需要能够在所有列上设置“非空”字符串属性。 谁能指出我正确的方向? 最佳答案 您可以在 AfterReadRecor
我有一个 csv 文件,我正在使用 FileHelpers 进行解析,并且我遇到了引号和逗号都可以出现在字段中的情况: 逗号: 323,"PC","28/02/2014","UNI001","5000
我最近的项目要求我读取 csv 文件。人们将我引向 filehelpers,因为“你不应该重新发明轮子”。但是,文档真的很烂,我似乎找不到处理可选引号的方法。这是我的 csv: 2734000585,
我想知道当它从一个文件中读取一个流时,你能告诉它只取 x 行吗?假设你想要文件中的 100 行,你可以告诉它只取前 100 行(忽略第一行,因为它是标题)。即使文件有 200 行? 最佳答案 您可以使
我有一个从网络服务中使用的类,我正尝试使用 FileHelpers 库将其导出到 csv。但是该类有一个 PropertyChangedEventHandler 引擎正在将其读取为一个字段,所以我得到
我用的是强大的FileHelpers Library .但是是否有内置的方法来搜索生成的对象。 var engine = new FileHelperEngine(); var res = engin
下面的代码用于在 ASP .NET MVC2 中使用 FileHelpers 读取固定宽度的上传文件内容文本文件 第一行和最后一行的长度较小,ReadStream 因此导致异常。所有其他行都有适当的固
在这里,我必须使用 FileHelpers 和 C# 写出一个文件,其中的记录是管道分隔的。大部分字段具有可变长度(因此,我的记录将是 [DelimitedRecord("|")] )。但是有些字段必
我正在使用 FileHelpers 库的 2.0 版,该库被记录为能够处理 .NET 2.0 可空类型。 我正在使用文档示例中给出的代码: [DelimitedRecord("|")] publi
我正在使用 FileHelper 2.0 来解析我的 csv 数据。是否有 filehelper 可以正确处理转义分隔符的选项?它可以将字段识别为数据而不是分隔符。 我们的 csv 格式:用\, 转义
我想知道如何在 filehelpers 中执行多个日期?似乎您必须指定要支持的每一种格式(有点糟糕......希望它可以处理更多基本格式)。 [FieldOrder(1), FieldConve
我有一个从另一个系统导出的 CSV 文件,其中的列顺序和定义可能会更改。我发现 FileHelpers 非常适合读取 csv 文件,但除非您在编译应用程序之前知道列的顺序,否则您似乎无法使用它。我想知
使用 FileHelper .Net 库,我可以以某种方式跳过源文件中的一些列吗? 根据文档和示例,我必须为所有列添加字段。唉,我有一个包含 216 列的 Excel 表要导入,其中只需 13 列。
我正在使用 FileHelpers 读取一个大文件图书馆。我想在阅读下面的记录之前更改 RecordLine。 static void engine_BeforeReadRecord(objec
假设我有一个像这样的 Filehelpers 类: [DelimitedRecord(",")] public class SomeRecord { public string Field1;
我正在使用优秀的 FileHelpers 库导入许多 csv 文件,但遇到了问题。我有一个包含这三个示例行的 csv 文件 id,text,number 120,"good line this one
我正在使用 FileHelpers创建固定长度的文件。在我的模型中,我有一个 double 需要以 0000.00 格式输出。无论如何我可以用 FileHelpers 本身指定它,还是我需要将我的模型
我是一名优秀的程序员,十分优秀!