[問題] 如何有效率讀大量CSV資料進DataGridView

作者: Gamakatsu (Gama)   2015-03-03 23:08:23
現在手上有約莫300個CSV檔案,每個檔案內有 18000 Rows and 27 Columns
目前初步的想法是...
1. 將每個檔案的資料讀入,並放入一個DataGridView內顯示
2. 將讀入的資料拿來做處裡及分析
目前處理方式如下:
a. 用一個 foreach 迴圈列舉出資料夾內的所有csv檔案
b. 用一個while讀檔案內所有資料(一次讀取一整行)
c. 將(b)讀入的資料以 String.split 方法切開
d. 將切開後的資料儲存起來 and 顯示在DataGridView內
上述的方法實作起來相當的耗時...
請問版上的各位高手們有什麼建議可以提升處理此情況的效率嗎?
謝謝大家
作者: totte (totte)   2015-03-03 23:30:00
LumenWorks.Framework.IO或 Microsoft.VisualBasic.FileIO.TextFieldParser
作者: soup514   2015-03-03 23:55:00
code project就有不少可以參考找fast csv reader
作者: wvsrugby   2015-03-04 00:28:00
顯示很花時間,用DataSet較佳
作者: Litfal (Litfal)   2015-03-04 00:30:00
是說code project的那個reader並不會特別快,但他考慮的CSV結構比較完整,單純用Split會有一些問題然後顯示的行為你要考慮,是否用部分檢視就好。以我的經驗而言,最慢的部分會在顯示在DataGridView,其次是Decode,再來是Split。儲存我不知道你怎麼存就先不考慮忽然想到補充:如果你是FAT32又放很多檔案的話,列舉也很慢
作者: GoalBased (Artificail Intelligence)   2015-03-04 08:48:00
你資料是死的話就寫進DB存起來呀

Links booklink

Contact Us: admin [ a t ] ucptt.com