MT4编写读取文件内容的脚本

在MT4的EA或者脚本编写中,往往会用到文件的读取。

文件作为数据中转,是比较传统,也是比较直接的方式,当然对比于数据库还是不能相提并论的。目前市面上比较流行的跟单软件恰恰就是用的文件来存储数据,其实效率是很难保证的。

        今天主要讲解一下如何读取CSV 文件中的数据

文件内容如下,这是一个csv 格式的文件内容,一般csv 用"," 作为间隔符是最好的,因为用Excel就能直接打开,今天用"*"来进行间隔。

174599633*USDJPY*0*0.04*0*0**0*1661526746*136.981*0.72952763
174596735*USDJPY*0*0.02*0*0*from #174596731*0*1661523219*136.883*0.72952763
174596504*USDJPY*0*0.01*0*0**0*1661522825*136.885*0.72952763

以上就是跟单软件中的信号源写入持仓单子的文件,如果要读取每一行,应该怎么读取呢?

直接上代码:

void read_file()
  {

   int closefile_handle;
   closefile_handle=FileOpen("10018175666.csv",FILE_CSV|FILE_READ|FILE_SHARE_WRITE|FILE_SHARE_READ,"\n");
   string xinhaoyuan_closeneirong="";
   if(closefile_handle>0)
     {
      int    closestr_size;
      string close_neirong;
      int    jishuqi =0;
      while(!FileIsEnding(closefile_handle)) 
        { 
         //--- 找到这个文件的大小 
             closestr_size=FileReadInteger(closefile_handle,INT_VALUE); 
         //--- 读取所有的字符串 
           close_neirong=FileReadString(closefile_handle,closestr_size);
         //---进行录入
         xinhaoyuan_closeneirong = xinhaoyuan_closeneirong+close_neirong+",";
         jishuqi++;//---记录行数
         
        }
        Alert(jishuqi); 
        FileClose(closefile_handle);
        Alert(xinhaoyuan_closeneirong);

     }
  }

int OnInit()
  {
   read_file();
   return(INIT_SUCCEEDED);
  }

结果:

174599633*USDJPY*0*0.04*0*0**0*1661526746*136.981*0.72952763,174596735*USDJPY*0*0.02*0*0*from,#174596731*0*1661523219*136.883*0.72952763,174596504*USDJPY*0*0.01*0*0**0*1661522825*136.885*0.72952763,

再对这个结果进行解析就好了

一定要注意:

closefile_handle=FileOpen("10018175666.csv",FILE_CSV|FILE_READ|FILE_SHARE_WRITE|FILE_SHARE_READ,"\n");

这一行代码用的 间隔符 是"\n";这个就是以行为单位进行分割。如果用的"*"进行分割,那得到的就是每一项。

得到每一行的信息,才是我们需要的

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值