FileFlush

Scrive su un disco tutti i dati rimasti nel buffer input/output del file.

void  FileFlush(
   int  file_handle      // File handle
   );

Parametri

file_handle

[in] Il descrittore di file restituito da FileOpen().

Valore restituito

Nessun valore restituito.

Nota

Quando si scrive un file, i dati possono essere effettivamente trovato lì solo dopo qualche tempo. Per salvare i dati nel file immediatamente, utilizzare la funzione FileFlush(). Se la funzione non viene utilizzata, parte dei dati che non sono stati archiviati nel disco ancora, verranno forzatamente scritta lì solo quando il file viene chiuso mediante la funzione FileClose().

La funzione deve essere utilizzata quando i dati scritti sono di un certo valore. Va tenuto presente che chiamate di funzioni frequenti possono influire sulla velocità di funzionamento del programma.

La funzione FileFlush() deve essere chiamata tra le operazioni di lettura da un file, e di scrittura su esso.

Esempio:

//--- mostra la finestra dei parametri di input quando si lancia lo script
#property script_show_inputs
//--- nome del file per la scrittura
input string InpFileName="example.csv"// nome del file
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
//--- resetta il valore dell'errore
   ResetLastError();
//--- apre il file
   int file_handle=FileOpen(InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- scrive i dati sul file
      for(int i=0;i<1000;i++)
        {
         //--- chiama la funzione di scrittura
         FileWrite(file_handle,TimeCurrent(),SymbolInfoDouble(Symbol(),SYMBOL_BID),SymbolInfoDouble(Symbol(),SYMBOL_ASK));
         //--- salva i dati sul disco ogni 128essima iterazione
         if((i & 127)==127)
           {
            //--- ora i dati verranno piazzati nel file e non verranno persi in caso di errore critico
            FileFlush(file_handle);
            PrintFormat("i = %d, OK",i);
           }
         //--- 0.01 secondi di pausa
         Sleep(10);
        }
      //--- chiude il file
      FileClose(file_handle);
     }
   else
      PrintFormat("Errore, codice = %d",GetLastError());
  }

Vedi anche

FileClose