我找到了一个很棒的库来读取CSV文件-FileHelpers,但是我遇到了一个奇怪的问题。我将不胜感激。提前致谢 !
映射后,我总是从右边的最后一列中删除一个字母。
我正在使用FileHelpers.dll版本2.0.0-来自FileHelpers_2_0_0_bin_docs_wizard.zip
的DotNet 2.0
例如我有这样的CSV文件(有些列被引用,但有些没有,可能会改变)
name;surname
"John";Smith
"Jack";Baker
在读取文件后:
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");
我得到这个:
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)
当我这样读取文件时:
name;surname;country
"John";Smith;USA
"Jack";Baker;Canada
问题出在第三栏中-所以我得到:
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;
}
有任何想法吗 ?
最佳答案
在发行之后解决了可选字段和其他一些问题,这是一个老问题,但我们却没有时间发布完整版本
您可以从此处下载解决问题的最新稳定版本:
http://teamcity.codebetter.com/viewLog.html?buildId=lastSuccessful&buildTypeId=bt66&tab=artifacts&guest=1