MQL5自己生成的csv文件读取也是正常的
难道是系统有bug???MQL4生成的csv无法被MQL5读取?
哈哈 也有人碰到这个问题了...
我也没解决怀疑是bug wps这种外部生成的csv文件
只有mt4可读
要是这样,就难受了
你试试写文件与读文件的代码中都加上 FILE_UNICODE
Ziheng Zhuang:
你试试写文件与读文件的代码中都加上 FILE_UNICODE
谢谢大神,不过还是不行。我感觉应该是mql5的问题,mql5自己写的csv就能读取到数据。mql4也能读取到MQL5生成的csv。
应该是你代码有问题,还是你没有说清楚...
没有读到数据与读的数据不对是两码事。
MT4 脚本写数据到COMMON路径,这样MT4与MT5就能借同一个目录以文件的方式通信。
写5行数据:
//+------------------------------------------------------------------+ //| test_mt4_fileWrite.mq4 | //| Copyright 2019,fxMeter | //| https://www.mql5.com/en/users/fxmeter | //+------------------------------------------------------------------+ #property copyright "Copyright 2019,fxMeter" #property link "https://www.mql5.com/en/users/fxmeter" #property version "1.00" #property strict string fileName="test_mt4.csv"; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- int handle=FileOpen(fileName,FILE_CSV|FILE_UNICODE|FILE_WRITE|FILE_SHARE_READ|FILE_COMMON,","); if(handle==-1)return; string txt="35964755*EURUSD*0*0.01*0*0**0*1560167721*1.13113"; for(int i=0;i<5;i++) { FileWrite(handle,i+":"+txt); } FileClose(handle); } //+------------------------------------------------------------------+
在MT5中读数据:
//+------------------------------------------------------------------+ //| test_mt5_fileRead.mq5 | //| Copyright 2019,fxMeter | //| https://www.mql5.com/en/users/fxmeter | //+------------------------------------------------------------------+ #property copyright "Copyright 2019,fxMeter" #property link "https://www.mql5.com/en/users/fxmeter" #property version "1.00" string fileName="test_mt4.csv"; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- int handle=FileOpen(fileName,FILE_CSV|FILE_UNICODE|FILE_READ|FILE_COMMON,","); if(handle==-1)return; string txt; //i+":"+"35964755*EURUSD*0*0.01*0*0**0*1560167721*1.13113" while(!FileIsEnding(handle)) { txt=FileReadString(handle); Print(txt); } FileClose(handle); } //+------------------------------------------------------------------+
COMMON目录是MT4,MT5共享的,其路径一般是这样的
C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal
csv 文件内容:
2992.96*2992.9
35964755*EURUSD*0*0.01*0*0**0*1560167721*1.13113
35964754*EURUSD*0*0.01*0*0**0*1560167720*1.13113
MQL5读取文件代码:
===========================
handle=FileOpen(跟踪主账号+".csv",FILE_CSV|FILE_READ|FILE_SHARE_WRITE|FILE_SHARE_READ,间隔符);
if(handle>0)//打印出来handle=1的
{
account_balance=FileReadString(handle); //这里无法读取到数值???有没有大神知道是什么原因呀。多少行都能读取正常的 。
}
===========================
MQL4读取文件代码:
===========================
handle=FileOpen(跟踪主账号+".csv",FILE_CSV|FILE_READ|FILE_SHARE_WRITE|FILE_SHARE_READ,间隔符);
if(handle>0)
{
account_balance=FileReadString(handle); //MQL4读取数据就正常的(值为:2992.96),头大呀 。
}
===========================