FileFlush
FileFlush
在输入/输出文件缓冲区中编辑所有保留数据到磁盘。
void FileFlush(
int file_handle // 文件句柄
);参量
- file_handle
[in] 通过 FileOpen()返回文件说明符。
返回值
没有返回值。
注释
当写入文件时,可能只有一段时间后才能实际上发现数据。要即时在文件中保存数据,请使用FileFlush()函数。如果没有使用函数,磁盘中还未保存的数据部分,将被迫只能在使用FileClose()函数关闭文件时写入。
函数应该在编写数据具有特定值时使用。应该记住,频繁的函数调用可能影响程序操作速度。
函数FileFlush ()必须在阅读和编辑文件操作之间调用。
示例:
//--- 启动脚本时显示输入参数的窗口
#property script_show_inputs
//--- 编写的文件名称
input string InpFileName="example.csv"; // 文件名
//+------------------------------------------------------------------+
//| 脚本程序启动函数 |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 重置错误值
ResetLastError();
//--- 打开文件
int file_handle=FileOpen(InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
if(file_handle!=INVALID_HANDLE)
{
//--- 写入文件数据
for(int i=0;i<1000;i++)
{
//--- 调用编写函数
FileWrite(file_handle,TimeCurrent(),SymbolInfoDouble(Symbol(),SYMBOL_BID),SymbolInfoDouble(Symbol(),SYMBOL_ASK));
//--- 每128次迭代时,在磁盘中保存数据
if((i & 127)==127)
{
//--- 现在,数据将位于文件并且不会丢失,以防严重的错误。
FileFlush(file_handle);
PrintFormat("i = %d, OK",i);
}
//--- 0.01 秒暂停
Sleep(10);
}
//--- 关闭文件
FileClose(file_handle);
}
else
PrintFormat("Error, code = %d",GetLastError());
}