MetaTrader 5 herunterladen

FileFlush

Speichert in der Platte alle Daten, die im Dateipuffer Eingabe-Ausgabe noch bleiben.

void  FileFlush(
   int  file_handle      // Datei-Handle
   );

Parameter

file_handle

[in]  Dateiattribut, das durch die FileOpen() Funktion zurückgegeben wird.

Rückgabewert

Keinen Rückgabewert.

Hinweis

Wenn Sie in eine Datei schreiben, können die Daten physisch nur nach einiger Zeit sein. Damit die Daten sofort in die Datei erhalten, müssen Sie die FileFlush() Funktion verwenden. Wenn Sie nicht der Daten-Funktion verwenden, die auf den Datenträger nicht noch aufgeholt hat gibt es nur, wenn Sie die FileClose() Funktion schließen.

Die Funktion sollte verwendet werden, wenn die Aufnahmedaten einige Wert darstellt. Es sollte berücksichtigt werden, dass ein häufige Funktionsaufruf die Geschwindigkeit des Programms beeinflussen kann.

Die FileFlush() Funktion muss zwischen der Operationen des Lesens aus der Datei und Schreibens in die Datei aufgerufen werden.

Beispiel:

//--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an
#property script_show_inputs
//--- der Name der Datei zum Schreiben
input string InpFileName="example.csv"// der Dateiname
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Stürzen Sie den Fehlerwert
   ResetLastError();
//--- öffnen Sie die Datei
   int file_handle=FileOpen(InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- Daten in eine Datei schreiben
      for(int i=0;i<1000;i++)
        {
         //--- Aufnahmefunktion aufrufen
         FileWrite(file_handle,TimeCurrent(),SymbolInfoDouble(Symbol(),SYMBOL_BID),SymbolInfoDouble(Symbol(),SYMBOL_ASK));
         //--- Zurücksetzen der Daten auf der Festplatte bei jeder 128 Iteration
         if((i & 127)==127)
           {
            //---Nun wird die Daten in der Datei, und wenn das Terminal wir schwerwiegender Fehler nicht verliert
            FileFlush(file_handle);
           }
         //---die Verzögerung von 0,01 Sekunden
         Sleep(10);
        }
      //--- Schließen Sie die Datei 
      FileClose(file_handle);
     }
   else
      PrintFormat("Fehler, Kode = %d",GetLastError());
  }

Sehen Sie auch

FileClose