MetaTrader 5 herunterladen

FileLoad

Liest alle Daten der angegebenen binären Datei in das Array numerischer Typen oder einfacher Strukturen. Die Funktion ermöglicht es, die Daten von einem bekannten Datentyp in das entsprechende Array zu lesen.

bool  FileLoad(
   const string  file_name,         // Dateiname
   void&         buffer[],          // Array numerischer Typen oder einfacher Strukturen
   int           common_flag=0      // Flag der Datei, standardmäßig wird nach der Datei im Ordner <data_folder>\MQL5\Files\ gesucht
   );

Parameter

file_name

[in]  Name der Datei, aus welcher die Daten gelesen werden.

buffer

[out]  Array numerischer Typen oder einfacher Strukturen.

common_flag=0

[in] Flag der Datei, zeigt den Modus an. Wenn der Parameter nicht angegeben ist, dann wird nach der Datei im Unterordner MQL5\Files (oder in <testing_agent_directory>\MQL5\Files beim Testen) gesucht.

Rückgabewert

Anzahl gelesener Elemente oder -1 im Fehlerfall.

Hinweis

Die Funktion FileLoad() liest die Anzahl der Bytes aus der Datei, die der Arraygröße aliquot ist. Zum Beispiel: die Dateigröße beträgt 10 Byte, und sie wird in ein Array vom Typ double (sizeof(double)=8) gelesen. In diesem Fall wird die Funktion nur 8 Byte lesen, 2 Byte vom Ende der Datei werden weggelassen, und die Funktion FileLoad() liefert 1 (1 Element wurde gelesen).

Beispiel:

//+------------------------------------------------------------------+
//|                                                Demo_FileLoad.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//--- input parameters
input int      bars_to_save=10; // Anzahl der Balken
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string  filename=_Symbol+"_rates.bin";
   MqlRates rates[];
//---
   int copied=CopyRates(_Symbol,_Period,0,bars_to_save,rates);
   if(copied!=-1)
     {
      PrintFormat(" CopyRates(%s) copied %d bars",_Symbol,copied);
      //---  schreiben wir Kurse in eine Datei
      if(!FileSave(filename,rates,FILE_COMMON))
         PrintFormat("FileSave() failed, error=%d",GetLastError());
     }
   else
      PrintFormat("Failed CopyRates(%s), error=",_Symbol,GetLastError());
//--- nun lesen wir diese Kurse aus der Datei
   ArrayFree(rates);
   long count=FileLoad(filename,rates,FILE_COMMON);
   if(count!=-1)
     {
      Print("Time\tOpen\tHigh\tLow\tClose\tTick Voulme\tSpread\tReal Volume");
      for(int i=0;i<count;i++)
        {
         PrintFormat("%s\t%G\t%G\t%G\t%G\t%I64u\t%d\t%I64u",
                     TimeToString(rates[i].time,TIME_DATE|TIME_SECONDS),
                     rates[i].open,rates[i].high,rates[i].low,rates[i].close,
                     rates[i].tick_volume,rates[i].spread,rates[i].real_volume);
        }
     }
  }

Sieh auch

Strukturen und Klassen, FileReadArra, FileReadStruct