nes 發表於 18-7-22 12:04

低調分享便利的csv檔案讀取工具(API)

看大家使用一堆策略軟體常在作的事就是找資料灌資料,
既然資料都是自己找來弄出來的怎麼不在自己的程式中使用呢?
看網路上有人用EXCEL搭配C++回測跟MC比較,
結果是子彈列車和蝸速的差距。
這樣的結果想到還要花錢費功夫搞,最後才知是買氣受罪,情何以堪呢?

仔細想想,資料灌進去其他軟體中只能依軟體的規範使用總是差強人意,
計算結果又不夠透明總是令人懷疑,加上資料都要靠自己想辦法生出來,
所以用這種工具根本是不得已的情況下勉強還是有可以用的情懷在作祟。

之前我分析台期所的每日每筆成交資料就是有透過一個小工具,
今天簡單分享出來讓大家參考看看,
因為也是展示用的版本還請低調使用就好,
API功能如圖:


如果是處理文字檔只須前面2個,後面2個是處理csv格式時使用的,
感覺好像是整個檔案載入在記憶體中
並有建立索引,運作速度上感覺效率非常好。
(可以參考之前處理台期所的每日每筆成交資料的速度)

至於要如何實際使用,就請大家自行摸索了~
x86版的dll:
x64版的dll:

小秘方:
畢竟是展示的版本,這個工具同一時間只能載入一個檔,
如果有多個檔需同時放記憶體操作可以把dll複製多份使用即可。
(這不是我說的,而是有經驗的人這麼講)


ram 發表於 18-7-25 02:32

謝謝分享

先下載,有空來試試{:4_130:}

感覺好像K線歷史資料用這個會變簡單吧

還有類似鼎新那種兩光的資料庫撈rawdata出來也可以用這個來處理

wcshk 發表於 18-7-25 09:24

有了他方便許多 感謝分享      

ram 發表於 18-8-7 10:19

wcshk 發表於 18-7-25 09:24
有了他方便許多 感謝分享

這位w大果真正解{:4_82:}

繞了好大一圈又回到這兒

本來覺得看這功能應該可以咕到很多資料

果然隨便一咕就一大堆囉,還是Open Source耶!

當然,java的直接跳過,其他像寶一樣的下載保存好

過來呢? 當然是GitHub的版本應該最方便吧,

README好長一篇功能好像很多,Performance寫的好像很厲害

真正要用時才知道原來不是這麼一回事阿{:4_186:}

如果是直接用原本的專案改勉強還好,就是還有NuGet這麻煩的東西

如果是自己的專案或建新專案要用到弄上這source還真是折騰{:4_154:}

原來API的要義就是要簡單要方便才對!

最後C#就是這樣用
#if x86
      private const string dllSource = "CsvReader_x32.dll";
#else
      private const string dllSource = "CsvReader_x64.dll";
#endif


      private static extern Int32 csvLoadFile(string TxtFile);

      
      private static extern IntPtr csvGetLine(Int32 LineNo);

      
      private static extern Int32 csvParserCsvLine(Int32 LineNo);

      
      private static extern IntPtr csvGetField(Int32 FieldIndex);
然後還可搭配上另一篇提到的資訊源API那裡的QM功能...

就這樣... 簡單配出一套簡單易用又高效能的動態程式資料庫系統了

可以把一堆檔案都抽出所需資料後保存在QM中任意調用或更新

只是儲存的部分還沒找到好工具配套

不過若單純的另寫csv檔供之後載入也還是蠻簡單的{:4_163:}(下次可以再來撈一筆嗎?!)


頁: [1]
查看完整版本: 低調分享便利的csv檔案讀取工具(API)