- - PR -
VBでCSV読み込み & 書き出しの処理速度向上について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-05-15 14:04
ちょっと勘違いしていたかもしれません。
最初は単に日付が一項目でスラッシュ区切りになっているのを、年月日で 分けて CSV ファイルにしたいのかと思っていましたが、どうも違うみたい ですね。 5/15/2007,10,1,2 を 2007,5,15,10,1,2 のように変換したい、という話でしょうか。 だとすると、こんな感じで。 # なんかコメントも間違ってたのでえらく解析に苦労した気が。
_________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||
|
投稿日時: 2007-05-15 15:02
変数sdを使用しないという前提で作成してみました。
ほぼ同スペックのパソコンでテストしてみましたが、2〜3秒程度で終了しました。
| ||||
|
投稿日時: 2007-05-15 15:34
皆様ご指摘ありがとうございます。
ぽぴ王子さんの第1回答を参考にし、以下のようにプログラムを書き直した所、 2,3秒程で希望通りのデータを得る事ができるようになりました。ありがとうございます。ちなみに皆様のご指摘通り変数sdはワークとして用いておりました。配列として いたのは、完全に私自身のデータ型選択誤りです。 ***変更点*** 'ファイルの最後までループ n = 0 Do Until sr1.Peek() = -1 temp = Split(sr1.ReadLine(), ",") Dim params As New List(Of String) params.AddRange(Split(temp(0), "/")) ' 年月日分解 params.Add(temp(1)) params.Add(temp(2)) params.Add(temp(3)) '取得結果を確認の為に表示 sw1.WriteLine(String.Join(",", params.ToArray())) n += 1 Loop VBはまだかじった程度ですが、適切なデータ型を選択する事でここまで結果に 変化がでるものなのかと驚いています。本当にありがとうございました。 |