FileWriteLong

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

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

uint  FileWriteLong(
   int   file_handle,     // Datei-Handle
   long  value            // der zu geschriebene Wert 
   );

Parameter

file_handle

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

value

[in]  Wert des Typs long.

Rückgabewert

Bei Erfolg gibt die Funktion die Anzahl der geschriebenen Bytes zurück (beim Schreiben in eine Binärdatei — sizeof(long)=8). 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 long

long long_value;
FileWrite(file_handle,long_value);

Beispiel:

//+------------------------------------------------------------------+
//|                                           Demo_FileWriteLong.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_H1;        // 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="Volume.bin"; // der Dateiname
input string          InpDirectoryName="Data";  // der Verzeichnisname
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime date_finish=TimeCurrent();
   long     volume_buff[];
   datetime time_buff[];
   int      size;
//--- stürzen Sie den Fehlerwert
   ResetLastError();
//--- kopieren Sie die Tick Volumen für jede Bar
   if(CopyTickVolume(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,volume_buff)==-1)
     {
      PrintFormat("Fehler beim Kopieren die Werte von Tick-Volumen. 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 Puffers
   size=ArraySize(volume_buff);
//--- öffnen Sie die Datei zum Schreiben die Indikatorwerte (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));
      //--- schreiben Sie zuerst die Große der Beispieldaten
      FileWriteLong(file_handle,(long)size);
      //--- schreiben Sie die Zeit und die Volumenwerte in die Datei
      for(int i=0;i<size;i++)
        {
         FileWriteLong(file_handle,(long)time_buff[i]);
         FileWriteLong(file_handle,volume_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

Ganzzahlige Typen, FileWriteInteger