FileLoad

Lit toutes les données d'un fichier binaire spécifié et remplit le tableau d'éléments numériques ou de structures simples passé en argument. La fonction vous permet de lire rapidement des données d'un type connu et de remplir le tableau correspondant.

long  FileLoad(
   const string  file_name,         // Nom du fichier
   void&         buffer[],          // Tableau d'éléments numériques ou de structures simples
   int           common_flag=0      // Un flag du fichier, recherché dans <data_folder>\MQL5\Files\ par défaut
   );

Paramètres

file_name

[in]  Le nom du fichier dans lequel les données seront lues.

buffer

[out]  Un tableau d'éléments numériques ou de structures simples.

common_flag=0

[in] Un flag du fichier indiquant le mode d'opération. Si le paramètre n'est pas spécifié, le fichier est recherché dans le sous-répertoire MQL5\Files (ou dans <répertoire_de_agent_de_test>\MQL5\Files en cas de test).

Valeur de Retour

Le nombre d'éléments lus ou -1 en cas d'erreur.

Note

La fonction FileLoad() lit depuis un fichier le nombre d'octets multiplié par la taille du tableau. Supposons que la taille du fichier est 10 octets et que la fonction lit les données et remplit un tableau de doubles ( (sizeof(double)=8). Dans ce cas, la fonction ne lira que 8 octets, les 2 octets restants à la fin du fichiers seront ignorés et la fonction FileLoad() retournera 1 (1 élément lu).

Exemple :

//+------------------------------------------------------------------+
//|                                                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
//--- paramètres d'entrée
input int      bars_to_save=10; // Nombre de barres
//+------------------------------------------------------------------+
//| Fonction de lancement du script                                  |
//+------------------------------------------------------------------+
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) a copié %d barres",_Symbol,copied);
      //---  Ecriture des cotations dans un fichier
      if(!FileSave(filename,rates,FILE_COMMON))
         PrintFormat("FileSave() a échoué, erreur=%d",GetLastError());
     }
   else
      PrintFormat("Echec de CopyRates(%s), erreur=",_Symbol,GetLastError());
//--- Relecture des cotations depuis le fichier
   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);
        }
     }
  }

Voir aussi

Structures et Classes, FileReadArray, FileReadStruct, FileSave