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