COCO研究院

 找回密碼
 註冊
搜索
查看: 36509|回復: 21

[工具] 分享一個 MC 讀取外部資料的外掛 DLL

[複製鏈接]
發表於 14-10-28 15:23 | 顯示全部樓層 |閱讀模式
本帖最後由 swwang1999 於 14-10-28 15:40 編輯

最近因為有些原因 , 需要讀取外部的資料檔 ,  但又不想動用到 dataN , 所以本來是想用MC_IO.dll
拿來用  , 但是好像遇到一些問題 , 所以索性乾脆自己發展一組 , 只能適用於 MC 專業版 , 不適用於
MC 券商版 , x64 的部分個人有在用 , x86 的部分因為自己沒灌 , 所以就只提供不測試了 , 附上原始碼 .
是用免費的 Dev C++ 5.8.0 版編譯的 , 有做一些防護 , 以免像 MC_IO.dll 檔案不存在 MC 會有 crash
的風險

附上 Dev C++ 5.8.0 版的鏈結 , 這是一個免費的 C++ IDE 編譯器 , http://orwelldevcpp.blogspot.tw/

FIO.zip (63.33 KB, 下載次數: 183, 售價: 1 金錢)

FIO_src.zip (39.86 KB, 下載次數: 185, 售價: 10 金錢)


評分

參與人數 17金錢 +36 收起 理由
f29825604 + 2 感謝分享
p54987 + 2 太強了
wanwh + 2 感謝分享
wslin1949 + 2 感謝分享
kuolung + 2 太強了
沒房子的阿捨 + 1 感謝分享
曾永政 + 2 感謝分享
blueways + 2 太強了
TrendRover + 5 感謝分享
googleandy + 2 感謝分享
liao803 + 2 太強了
paf + 2 感謝分享
yycalpis + 2 強到...我看不懂...我太嫩了

查看全部評分

 樓主| 發表於 14-10-28 15:38 | 顯示全部樓層
提供一個使用範例 :

vars: value2(0);     // file position pointer
vars: idx   (0);
vars: DigitStr("");


if LastBarOnChart and BarStatus(1)=2 then
  begin
        
     FileDelete( "e:\hello.txt" );
     
     value2 = 0;
     
     for idx=0 to 2000
       begin
      
           value2 = _FIO_ReadDigit( "filename.txt" , value2 , DigitStr );
           
           _FIO_Write( "e:\hello.txt", text(doublequote,DigitStr,doublequote,Spaces(30-Strlen(DigitStr)),  value2:8:0 ) , 1 );
           
       end;
     
  end;
回復 支持 1 反對 0

使用道具 舉報

發表於 14-11-8 17:53 | 顯示全部樓層
感謝您分享!下來看看。
 樓主| 發表於 14-11-9 18:30 | 顯示全部樓層
本帖最後由 swwang1999 於 14-11-9 18:31 編輯

更新一版 _FIO_ReadDigit 函數 , 加快讀取的速度 , 之前的版本速度比較慢

//
// _FIO_ReadDigit :  Read Digit from file
//
//
//

Inputs:FileName   ( String     ),
        FilePos    ( Numeric    ),
        DigitValue ( NumericRef );
        
vars : idx         (0);        
vars : result      (0);
vars : NextFilePos (0);
vars : ReadCnt     (0);
vars : DigitStr    ("");
vars : CurChar     ("");
vars : CurString   ("");

if FilePos>=0 then
     begin      
        DigitStr  = "";        
        ReadCnt   = _FIO_Read( FileName, (FilePos+1) , 30 , CurString );   
                                                                        
        for idx=1 to ReadCnt
            begin                                          
                CurChar = MidStr( CurString , idx , 1 );                                   
                switch(CurChar)
                   begin               
                       case "-",
                            "0",
                            "1",
                            "2",
                            "3",
                            "4",
                            "5",
                            "6",
                            "7",
                            "8",
                            "9",
                            ".":  DigitStr= DigitStr+ CurChar;
                                             
                        default : begin
                                    if DigitStr<>"" then
                                       begin
                                          NextFilePos = FilePos + idx;
                                          break;
                                       end;
                                  end;
                   end;   
            end;     
                       
         DigitValue  = StrToNum( DigitStr );                    
         if ReadCnt<30 and DigitStr="" then NextFilePos= (-1);   
     end
   else
     begin
         DigitValue  = 0;
         NextFilePos = (-1);
     end;
                                                            
  _FIO_ReadDigit = NextFilePos;

發表於 14-11-24 21:15 | 顯示全部樓層
感謝您分享!非常有用!
發表於 15-4-30 18:21 | 顯示全部樓層
感謝您分享, 努力研究中
發表於 15-5-12 10:15 | 顯示全部樓層
感謝您無私的分享, 好好研究看看....
發表於 15-6-3 08:09 | 顯示全部樓層
感謝您分享!下來看看。
發表於 15-11-11 15:06 | 顯示全部樓層
神人, 感謝分享! 等有coco之後下來看看
發表於 17-3-28 15:47 | 顯示全部樓層
先謝謝樓主,問一下 fio dll 檔 該放在那裡?
發表於 17-3-28 19:00 | 顯示全部樓層
alex198881 發表於 17-3-28 15:47
先謝謝樓主,問一下 fio dll 檔 該放在那裡?

通常是
C:\Program Files\TS Support\MultiCharts64

發表於 19-9-1 15:32 | 顯示全部樓層
太棒了
可以好好來研究看看
謝謝大大
發表於 19-9-12 09:29 | 顯示全部樓層
很強大
來研究看看
謝謝大大
發表於 21-4-11 13:58 | 顯示全部樓層
感謝大大無私的分享
買來好好研究看看
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-22 11:29

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |