FileFlush

입력/출력 파일 버퍼에 남아 있는 모든 데이터를 디스크에 씁니다.

void  FileFlush(
   int  file_handle      // 파일 핸들
   );

Parameters

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