FileHelpers库CSV - 为什么总是从右边的最后一列中删除一个字母?

Bar*_*ney 1 .net c# csv import filehelpers

我找到了一个非常好的库来读取CSV文件 - FileHelpers,但我有一个奇怪的问题.我将不胜感激.提前致谢 !

映射后,我总是从右边的最后一列中删除一个字母.

我正在使用FileHelpers.dll版本2.0.0 - 来自的DotNet 2.0 FileHelpers_2_0_0_bin_docs_wizard.zip

例如,我有一个像这样的CSV(引用了一些列,但有些列不是,它可能会改变)

name;surname
"John";Smith
"Jack";Baker
Run Code Online (Sandbox Code Playgroud)

阅读文件后:

FileHelperEngine<SemicolonsRow> engine = new FileHelperEngine<SemicolonsRow>();
engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue;

res = engine.ReadFile("C:\\a.txt");

if (engine.ErrorManager.ErrorCount > 0)
engine.ErrorManager.SaveErrors("C:\\Log.txt");
Run Code Online (Sandbox Code Playgroud)

我明白了:

res[0].Col0 with name
res[0].Col1 with surnam  (lack of e at the end)
res[1].Col0 with John
res[1].Col0 with Smit  (lack of h at the end)
Run Code Online (Sandbox Code Playgroud)

当我读这样的文件时:

name;surname;country
"John";Smith;USA
"Jack";Baker;Canada
Run Code Online (Sandbox Code Playgroud)

问题出在第三栏 - 所以我得到: countr US Canad

我的FileHelpers类:

[IgnoreEmptyLines()]
[DelimitedRecord(";")]
public sealed class SemicolonsRow
{
    [FieldOptional()]
    [FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
    public String Col0;

    [FieldOptional()]
    [FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
    public String Col1;

    [FieldOptional()]
    [FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
    public String Col2;

    [FieldOptional()]
    [FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
    public String Col3;
}  
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

Mar*_*eli 5

这是一个老问题,在发布之后解决了opcional字段和其他一些条件,但是我们从来没有时间完全发布

您可以从此处下载解决问题的最新稳定版本:

http://teamcity.codebetter.com/viewLog.html?buildId=lastSuccessful&buildTypeId=bt66&tab=artifacts&guest=1

  • 如果你把链接放到filehelpers.com网站上的Teamcity构建中,那么Marcos会很棒. (2认同)