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