COCO研究院

 找回密碼
 註冊
搜索
查看: 1959|回復: 0

[其他程式語言] MC_IO dll 只能讀第一行嗎?

[複製鏈接]
發表於 14-10-21 21:29 | 顯示全部樓層 |閱讀模式

因為最近在弄 MC 的讀檔 , 所以搜尋到之前有人分享 MC_IO.zip , 其中有 x86 & x64
兩個版本的外掛 (個人是用x64 的外掛 DLL ) ,但是個人要讀取的檔案是有多行的資料
, 其資料就類似 :

1140102  900   -1 0     8472    1401750    1403150
1140102  915   -1 0     8472    1401750    1403150
1140102  930   -1 0     8472    1401750    1403150
1140102  945   -1 0     8472    1401750    1403150
1140102 1000   -1 0     8472    1401750    1403150
1140102 1015   -1 0     8472    1401750    1403150
1140102 1030   -1 0     8472    1401750    1403150
1140102 1045   -1 0     8472    1401750    1403150
1140102 1100   -1 0     8472    1401750    1403150
1140102 1115   -1 0     8472    1401750    1403150

但是個人一直都只能讀第一行 , 之後 MCIO 的讀取就認為到檔尾了,
這是個人不會用 , 還是這是這個 DLL 本身的限制 , 有人可以幫忙看看
這可能是甚麼問題嗎?

附上個人寫的程式 :

//-------------------------------------------------------------
//  主程式 (節錄)
//-------------------------------------------------------------

vars: idx            (0);
vars: num_string("");

value2=0;

for idx=0 to 20
         
      begin      
      
        value2= _MCIO_read_number( "e:\$ST040.txt" , value2 , num_string );
      
        print( file( "e:\hello.txt" ) , num_string , value2 );
        
      end;

//--------------------------------------------------------------
//   _MCIO_read_number , 函式
//--------------------------------------------------------------

inputs : FileName (string     );
inputs : FilePos  (Numeric    );
//inputs : NumValue (NumericRef );
inputs : NumValue (StringRef );
vars   : intrabarpersist ExitFlag  (false);
vars   : intrabarpersist CurFilePos(0);
vars   : intrabarpersist Length    (0);
vars   : intrabarpersist CurChar   ("");
vars   : intrabarpersist NumString ("");

  DEFINEDLLFUNC:"D:\MC_IO\MCIOx64.dll",lpstr,"ANREAD",lpstr,int;

  NumString  = "";
  Length     = 0;
  CurFilePos = IFF( FilePos<0 , 0 , FilePos);
  
  ExitFlag   = false;

  while (not ExitFlag)
    begin
   
        CurFilePos = CurFilePos+1;
        Length     = Length+1;        
        CurChar    = ANREAD( FileName, CurFilePos);        
                                
        switch(CurChar)
          begin
               
            case "-",
                 "0",
                 "1",
                 "2",
                 "3",
                 "4",
                 "5",
                 "6",
                 "7",
                 "8",
                 "9",
                 ".":  NumString=NumString+ CurChar;
                                 
            case NewLine:
                       begin
                         ExitFlag=true;
                       end;
            
            default : begin
                         if NumString<>"" then ExitFlag=true;
                         if CurChar  = "" then ExitFlag=true;
                      end;        
         
          end;        
         
         if Length>=30 then ExitFlag=true;                     
                                
    end;
   
  if CurChar="" then CurFilePos= (-1);
  
  //print( file( "e:\hello1.txt" ) , NumString + NewLine );
      
  //NumValue = StrToNum( NumString );
  NumValue = NumString;
   
  _MCIO_read_number = CurFilePos;   

//----------------------------------------------------------------
//  輸出結果 (Hello.txt)
//----------------------------------------------------------------

1140102   8.00
900         13.00
-1           18.00
0            20.00
8472       29.00
1401750  40.00
1403150  51.00
              -1.00
1140102   8.00
900         13.00
-1           18.00
0            20.00
8472       29.00
1401750  40.00
1403150  51.00
              -1.00
1140102   8.00
900         13.00
-1           18.00
0            20.00
8472      29.00




您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 24-4-30 21:50

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 | AI繪圖AI超擬真美女AI beauty AI Stable DiffusionAI正妹AI Lookbook