下载MetaTrader 5

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());
  }

另见

FileClose


更新: 2015.12.03