2010-11-24 3 views
1

私はLumenworks CSVリーダーを使用しています。細かい高速CSVリーダー

あなたは罰金CSVリーダーをお勧めすることができ、それが持っているdoesntの私は時間以内にCSVファイルの数千人を解析Mとの問題が常にあり、どちらかなど例外は不正なレコード不満や列を歪める

をスローします無料ですが、バグはありません。

ありがとうございます。

+0

あなたが入力ファイルには、特定のCSV本当にされていますか?ファイルをデータベースにインポートし、そのデータを使用するオプションがありますか?たとえば、MS SQLの一括インポートでは、さまざまな種類のCSVファイルを簡単に処理でき、非常に大きなファイルをインポートするには数秒かかります。その時点から、データベーステーブル内のデータを処理するだけです。 –

+0

ファイルを解析して処理する必要があります。私はデータベースに一括挿入を行うことはできません。 parsin、ルーメンワークスは永遠のもののためにたくさんのことをやっています。 – DarthVader

+0

私は同意します...ルーメンは常に例外をスローします...私たちに必要なのは、区切り線を読み込んだ単純な読者だけです。気の利いたものはありません...気をつけてください; D – Tommix

答えて

0

入力ファイルをチェックする必要があります。これらのツールは、量のものを目指すため(最大ファイルを扱うために間違ったデータをスキップするため)、フォーマットチェックで停止しないと思います。 現実世界では、きれいなCSVのストリームはめったにありません。

通常、同じソースから来るエラーを生成している

-semiコロンの代わりにコンマ

ファイルを引用-no:ドライバーは、自分のようなものを与える傾向があります。

+0

okどのファイルタイプをお勧めしますか? – DarthVader

+0

Frank Vが示唆したように、間違ったファイルを分離する必要があります。あなたのCSVはMS Access、データベースのエクスポートまたはカスタムから来ていますか?標準の –

3

FileHelpersオープンソースライブラリhttp://www.filehelpers.net/

+0

これは役に立たなかったです。パースエラー。 – DarthVader

+0

@ user177883、元の質問に戻ってくるエラーを投稿できますか? –

+0

エラーを無視するオプションを渡すことができます。それは動作させる。しかし非常に遅いです。 – DarthVader

0

私はそれを使用するので、長い時間がかかったが、CSVは、多くのオプションとFileHelpersの解析ありません。

+0

は助けてくれなかったし、また駄目だ。 – DarthVader

+1

はクラップアウトを定義...特定のエラーのいくつかのタイプは、爆発するCSVファイルで珍しいものがありますか? – Zachary

+0

クラップアウト=クラッシュ!笑い。たとえfilehelpersが私がいくつかの否定的なレビューを聞いたことがある人の多くでお勧めしますが、驚くことではありません... – Timmerz

1

あなたは、ファイルから例外などを受け取っていると言います。これらは望ましくないかもしれませんが、原因を調査しましたか?

テーブルにある現在のパーサーの1つを使用し、例外が発生した場合は、代替コードを試すか、カスタムコードでシナリオを処理します。私はそれがあなたが探しているものではないことを知っていますが、問題はあなたが使用しているツールではないかもしれませんが、ツールが受け取っている入力...

また、違反しているファイルを別のディレクトリ後でちょっと見て、何が処理され、処理されるのかを知ることができます。

3

お試しCsvHelper(ライブラリを維持しています)それはNuGetでも利用可能です。

1

.NETにはCSVパーサーが組み込まれています。 http://coding.abel.nu/2012/06/built-in-net-csv-parser/から

// TextFieldParser is in the Microsoft.VisualBasic.FileIO namespace. 
using (TextFieldParser parser = new TextFieldParser(path)) 
{ 
    parser.CommentTokens = new string[] { "#" }; 
    parser.SetDelimiters(new string[] { ";" }); 
    parser.HasFieldsEnclosedInQuotes = true; 

    // Skip over header line. 
    parser.ReadLine(); 

    while (!parser.EndOfData) 
    { 
     string[] fields = parser.ReadFields(); 
     yield return new Brand() 
     { 
      Name = fields[0], 
      FactoryLocation = fields[1], 
      EstablishedYear = int.Parse(fields[2]), 
      Profit = double.Parse(fields[3], swedishCulture) 
     }; 
    } 
} 
+0

で指定されているとおり、正しいファイルタイプがCSVに従っている必要があります。ただし、VB.NetパーサーはLumenworksパーサーよりもはるかに低速です。私たちのテストでは、Lumenworksのパーサーは〜20〜60速かったです。 –

関連する問題