約100,000行、1行あたり約50列のテキストファイルがあり、ほとんどのデータはかなり小さいです(5〜10文字または数字)。
これは非常に単純なタスクですが、このデータをC#データ構造(たとえば、DataTable)にインポートするのに最適な方法は何か疑問に思っていますか?
タブ列区切り文字を含むCSVとして読み込みます。
編集:
これがあなたが必要とするものの最低限の例です:
DataTable dt = new DataTable();
using (CsvReader csv = new CsvReader(new StreamReader(CSV_FULLNAME), false, '\t')) {
dt.Load(csv);
}
ここで、CSV_FULLNAMEは、タブ区切りのCSVのフルパス+ファイル名です。
.NETの組み込みテキストパーサーを使用します。それは無料で、優れたエラー処理があり、多くの奇妙なボールケースを扱います。
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser(VS.80).aspx
FileHelpersについては、タブを区切り文字として定義できます。提供されたリンクを使用してそのサイトにアクセスし、覗いてみてください。
これがお役に立てば幸いです、よろしく、トム。
2つのオプション:
System.Data.OleDb
名前空間のクラスを使用します。これには、ごくわずかなコードで要求したようにデータテーブルに直接読み込むという利点がありますが、カンマ区切りではなくタブであるため、正しく理解するのは難しい場合があります。ただし、行を解析する場合は、データグリッドのデータソースとして、転送と巻き戻しをサポートするものを使用するようにしてください。最初にすべてをメモリにロードしたくないですか?次回はデータ量を10倍にしたらどうでしょうか。file.seekを使用するものを作成し、最初にすべてをメモリに読み込まないでください。それが私のアドバイスです。
シンプルですが、必ずしも優れた方法ではありません。
テキストリーダーを使用してファイルを文字列に読み込む
String.Splitを使用して行を取得します
String.Splitをタブ文字とともに使用して、フィールド値を取得します