FileLoad

Legge tutti i dati di un file binario specificato in un array passato, di tipo numerico o strutture semplici. La funzione consente di leggere rapidamente i dati di tipo noto nell' array appropriato.

long  FileLoad(
   const string  file_name,         // Nome del File
   void&         buffer[],          // Un array di tipo numerico o strutture semplici
   int           common_flag=0      // Un flag file, viene cercato in <data_folder>\MQL5\Files\ per default
   );

Parametri

file_name

[in] Il nome del file da cui vengono letti i dati.

buffer

[in] Un array di tipo numerico o strutture semplici.

common_flag=0

[in] Una flag file indicante la modalità di funzionamento. Se il parametro non viene specificato, il file viene cercato nella sottocartella MQL5\Files (o in <testing_agent_directory>\MQL5\Files in caso di testing).

Valore di ritorno

Il numero di elementi letti oppure -1 in caso di errore.

Nota

La funzione FileLoad() legge da un file il numero di byte multiplo della grandezza dell'array. Supponiamo che la dimensione del file è di 10 byte, e la funzione legge i dati in un array di tipo double (sizeof(Double)=8). In questo caso la funzione leggerà solo 8 byte, i restanti 2 byte alla fine del file verranno scartati, e la funzione FileLoad() restituirà 1 (1 elemento letto).

Esempio:

//+------------------------------------------------------------------+
//|                                                Demo_FileLoad.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//--- parametri di input 
input int      bars_to_save=10; // Numero di barre
//+------------------------------------------------------------------+
//| Script program funzione start                                    |
//+------------------------------------------------------------------+
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);
      //---  Scrive quotazioni sul file
      if(!FileSave(filename,rates,FILE_COMMON))
         PrintFormat("FileSave() failed, error=%d",GetLastError());
     }
   else
      PrintFormat("Failed CopyRates(%s), error=",_Symbol,GetLastError());
// --- Ora legge queste quotazioni indietro al file
   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);
        }
     }
  }

Guarda anche

Strutture e Classi, FileReadArray, FileReadStruct, FileSave