FileFlush

Escreve para um disco todos os dados remanescentes dentro da entrada/saída do arquivo buffer.

void  FileFlush(
   int  file_handle      // Manipulador de arquivo
   );

Parâmetros

file_handle

[in]  Descritor de arquivo retornado pelo FileOpen().

Valor do Retorno

Sem valor retornado.

Observação

Ao escrever um arquivo, os dados podem ser realmente encontrados lá só depois de algum tempo. Para salvar os dados no arquivo instantaneamente, utilize a função FileFlush(). Se a função não é utilizada, parte dos dados que não tenham sido ainda armazenados no disco, serão forçosamente escritos lá apenas quando o arquivo é fechado com a funçãoFileClose().

A função deve ser usada quando os dados gravados são de um certo valor. Deve-se ter em mente que freqüente chamada de função podem afetar a velocidade de operação do programa.

Função FileFlush() deve ser chamado entre as operações de leitura de um arquivo e gravá-lo.

Exemplo:

//--- mostrar a janela de parâmetros de entrada quando do lançamento do script
#property script_show_inputs
//--- Nome do arquivo para escrever
input string InpFileName="example.csv"// nome do arquivo
//+------------------------------------------------------------------+
//| Programa Script da função start (iniciar)                        |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- redefine o valor de erro
   ResetLastError();
//--- abre o arquivo
   int file_handle=FileOpen(InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- gravar dados no arquivo
      for(int i=0;i<1000;i++)
        {
         //--- chamar função de escrever
         FileWrite(file_handle,TimeCurrent(),SymbolInfoDouble(Symbol(),SYMBOL_BID),SymbolInfoDouble(Symbol(),SYMBOL_ASK));
         //--- salvar os dados no disco a cada iteração (repetição) 128
         if((i & 127)==127)
           {
            //--- agora, os dados serão localizados no arquivo e não serão perdidos no caso de um erro crítico
            FileFlush(file_handle);
            PrintFormat("i = %d, OK",i);
           }
         //--- 0.01 segunda pausa
         Sleep(10);
        }
      //--- fechar o arquivo
      FileClose(file_handle);
     }
   else
      PrintFormat("Erro, código = %d",GetLastError());
  }

Também Veja

FileClose