2012-03-16 4 views
1

私はCSVファイルを読むのに本当に素晴らしいライブラリを見つけました - FileHelpers、しかし私はそれに奇妙な問題があります。私はいくつかの助けに感謝します。前もって感謝します !FileHelpersライブラリCSV - 1つの文字が常に右側の最後の列から削除されるのはなぜですか?

マッピング後、私は常に右の最後の列から1文字削除します。例えばについてFileHelpers_2_0_0_bin_docs_wizard.zip

から過去ログ2.0 - 私はFileHelpers.dllバージョン2.0.0を使用してい

私はこのようなCSV(一部の列が引用されているが、いくつかは、それが変更されることがありません)

name;surname 
"John";Smith 
"Jack";Baker 

を持っているとしてファイルを読んだ後:

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) 

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"); 

私はこれを取得します

このようなファイルを読むと:

name;surname;country 
"John";Smith;USA 
"Jack";Baker;Canada 

問題は、3列目にある - 私は得る: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; 
} 

任意のアイデア?

+0

ソースファイルに引用符付きのフィールドが含まれていない場合に発生しますか? –

+0

@Simon Whittemore - はい、私は引用符なしですべての列を持っているときに私はまた、カットワードを取得します。 – Barney

答えて

5

opcionalフィールドとリリース後に解決された他のいくつかの条件に古い問題ですが、我々はフルリリース

までの時間を取得することはありませんあなたが問題を解決するため、ここから最後の安定版ダウンロードすることができます。

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

+1

ご返信ありがとうございます。 新しいバージョンが私の問題を解決しましたので、プロのサポートに感謝します。私は明確な良心を持ったFileHelpersライブラリをお勧めします:) – Barney

+2

Marcos、filehelpers.comウェブサイト上のTeamcityビルドへのリンクを置くとすばらしいことになります。 –

2

ライブラリでは、区切り文字が最後の文字として表示されると思われます。 図書館の著者に連絡してください。

+0

どのようにこの問題を解決するためのアイデア? – Barney

+0

プロジェクトはオープンソースでユニットテストを含んでいるので、そこから始めたいと思います。 –

関連する問題