FileWriteFloat

Schreibt den Wert des Parameters vom Typ float ab der aktuellen Position des Dateizeigers in eine Binärdatei.

Schreibt den in Text umgewandelten Wert des Parameters vom Typ float ab der aktuellen Position des Dateizeigers in eine CSV- oder Textdatei.

uint  FileWriteFloat(
   int    file_handle,     // Datei-Handle
   float  value            // geschriebener Wert 
   );

Parameter

file_handle

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

value

[in]  Wert des Typs float.

Rückgabewert

Bei Erfolg gibt die Funktion die Anzahl der geschriebenen Bytes zurück (beim Schreiben in eine Binärdatei — sizeof(float)=4). Der Dateizeiger wird um dieselbe Anzahl von Bytes verschoben.

Hinweis

Beim Schreiben in eine Binärdatei entspricht dies dem Aufruf der Funktion FileWrite mit einem Parameter vom Typ float

float float_value;
FileWrite(file_handle,float_value);

Beispiel:

//+------------------------------------------------------------------+
//|                                          Demo_FileWriteFloat.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an
#property script_show_inputs
//--- die Parameter für das Erhalten der Daten aus dem Terminal
input string          InpSymbolName="EURUSD";           // Währungspaar
input ENUM_TIMEFRAMES InpSymbolPeriod=PERIOD_M15;       // Zeitspanne
input datetime        InpDateStart=D'2013.01.01 00:00'; // das Anfangsdatum zum Kopieren von Daten
//--- die Parameter für die Aufzeichnung der Daten in die Datei
input string          InpFileName="Close.bin"; // der Dateiname
input string          InpDirectoryName="Data"; // der Verzeichnisname
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime date_finish=TimeCurrent();
   double   close_buff[];
   datetime time_buff[];
   int      size;
//--- stürzen Sie den Fehlerwert
   ResetLastError();
//--- Kopieren Sie der Schlußpreis für jede Bar
   if(CopyClose(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,close_buff)==-1)
     {
      PrintFormat("Fehler beim Kopieren von Werte des Schlußpreises. Fehlercode = %d",GetLastError());
      return;
     }
//--- Kopieren Sie die Zeit für jede Bar
   if(CopyTime(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,time_buff)==-1)
     {
      PrintFormat("Fehler beim Kopieren von Zeitwerte. Fehlercode = %d",GetLastError());
      return;
     }
//--- erhalten Sie die Größe des Buffers
   size=ArraySize(close_buff);
//--- öffnen Sie die Datei zum Schreiben die Werte (wenn nicht, dann sie automatisch erstellt werden wird)
   ResetLastError();
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("%s Datei ist zum Lesen geöffnet",InpFileName);
      PrintFormat("Pfad zur Datei: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- zeichnen Sie die Zeit und die Werte der Schlußpreis in die Datei auf
      for(int i=0;i<size;i++)
        {
         FileWriteDouble(file_handle,(double)time_buff[i]);
         FileWriteFloat(file_handle,(float)close_buff[i]);
        }
      //--- schließen Sie die Datei
      FileClose(file_handle);
      PrintFormat("Die Daten sind aufgezeichnet, die Datei %s geschlossen",InpFileName);
     }
   else
      PrintFormat("Fehler beim Öffnen der Datei %s, Fehlercode = %d",InpFileName,GetLastError());
  }

Sehen Sie auch

Realtypen (double, float), FileWriteDouble