应该没问题的:
|
老大能不能说得具体些,小弟C语言是门外汉,编程也是摸着石头过河........能否用一个简单的实例说明?
拜托了。。。。大恩不言谢!
filewrite()搞了很久
既然搞了很久,就应该把你搞了很久的代码发来,才好改,网络不是面对面课堂,一般不可能替你写的。
你是不会写文件还是不知道间隔5分钟怎么确定?
帮助中的例子哪个地方没看懂?
int handle; handle=FileOpen("my_data.csv",FILE_CSV|FILE_WRITE,';'); if(handle<1) { Print("File my_data.dat not found, the last error is ", GetLastError()); return(false); }
int handle; datetime orderOpen=OrderOpenTime(); handle=FileOpen("filename", FILE_CSV|FILE_WRITE, ';'); if(handle>0) { FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen)); FileClose(handle); }
int handle=FileOpen("filename.csv", FILE_CSV|FILE_READ|FILE_WRITE, ';'); if(handle>0) { FileSeek(handle, 0, SEEK_END); //---- add data to the end of file FileWrite(handle, data1, data2); FileClose(handle); handle=0; }
DxdCn 老师您好!
很感谢您的回复。
以下是我的代码:运行的时候,问题 1、文件不会自动关闭,要退出MT4才可以打开创建的文件。应该如何合法关闭文件?
问题2、程序不能连续按设定的时间间隔读取数据并写入文件。能否帮忙修改?谢谢!
extern double A;
extern double B;
int init()
{
A = MarketInfo("EURUSD",MODE_BID);
B = MarketInfo("USDJPY",MODE_BID);
}
int start()
{
int handle=FileOpen("mydat.csv",FILE_CSV|FILE_WRITE);
if(handle>0)
{
FileWrite(handle, "EURUSD","USDJPY");
} //----创建一个mydat.csv文件
if(TimeSeconds(TimeCurrent())>50)//----每隔一分钟写一次数据
{
FileWrite(handle, A,B);
}
return(0);
}
extern double A;
extern double B;
datetime lasttime=NULL;
int init()
{
A = MarketInfo("EURUSD",MODE_BID);
B = MarketInfo("USDJPY",MODE_BID);
}
int start()
{
if ( (lasttime != NULL) && ((Time[0] - lasttime )<60)) return(0);
lasttime = Time[0] ;
int handle=FileOpen("mydat.csv",FILE_CSV|FILE_WRITE);
if(handle>0)
{
FileSeek(handle, 0, SEEK_END);
//---- add data to the end of file
FileWrite(handle, A,B);
FileClose(handle);
handle=0;
}
return(0);
}
DxdCn 老师您好!
我试过了,还是不行。它只可以写一次数据,不知道问题出现在哪里了。。。。
......
......
int handle=FileOpen("mydat.csv",FILE_CSV|FILE_WRITE);//----这是不是相当于建立文件?
if(handle>0) //----这里是不是当文件创建成功,就执行条件函数体?
{
FileSeek(handle, 0, SEEK_END);
//---- add data to the end of file
FileWrite(handle, A,B);
FileClose(handle);
handle=0;//----返回0给handle,那依我的理解,它第二次以及以后判断的时候都不会执行条件函数体?
}
return(0);//----这一句语句可否省掉?
}
谢谢!
第二次以及以后判断的时候都不会执行条件函数体?
每次都是MT调用Start
改为 int handle=FileOpen("mydat.csv",FILE_CSV|FILE_READ | FILE_WRITE);//
return(0);//----这一句语句可否省掉?
不能,start声明是 int Start() {...}
第二次以及以后判断的时候都不会执行条件函数体?
每次都是MT调用Start
改为 int handle=FileOpen("mydat.csv",FILE_CSV|FILE_READ | FILE_WRITE);//
return(0);//----这一句语句可否省掉?
不能,start声明是 int Start() {...}
您好!
输出文件已经基本解决。请问能否将文件的类型改为XLS?如何改才对?
DxdCn 老师您好!
请问,我想每隔5分钟就输出某一货币对的卖价到本地电脑指定文件,代码应该如何写?
我用filewrite()搞了很久都完成不了。
期待回复。。。。。
谢谢!