FileSave

Ecrit tous les éléments d'un tableau passé en argument dans un fichier binaire. La fonction vous permet d'écrire rapidement des tableaux d'élements numériques ou de structures simples sous forme d'une chaîne de caractères.

bool  FileSave(
   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 de fichier, par default, les fichiers sont écrits dans <data_folder>\MQL5\Files\
   );

Paramètres

file_name

[in]  Le nom du fichier dans lequel le tableau de données sera écrit.

buffer

[in]  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 sera écrite dans le sous-répertoire MQL5\Files (ou dans <repertoire_agent_de_test>\MQL5\Files en cas de test).

Valeur de Retour

En cas d'erreur, retourne false.

Exemple :

//+------------------------------------------------------------------+
//|                                                Demo_FileSave.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 script_show_inputs
//--- paramètres d'entrée
input int      ticks_to_save=1000; // Nombre de ticks
//+------------------------------------------------------------------+
//| Fonction de lancement du script                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   string  filename=_Symbol+"_ticks.bin";
   MqlTick ticks[];
//---
   int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save);
   if(copied!=-1)
     {
      PrintFormat(" CopyTicks(%s) a copié %d ticks",_Symbol,copied);
      //--- Si l'historique des ticks esst synchronisé, le code d'erreur est égal à zéro
      if(!GetLastError()==0)
         PrintFormat("%s : Les ticks ne sont pas synchronisés, erreur=%d",_Symbol,copied,_LastError);
      //---  Ecriture des ticks dans un fichier
      if(!FileSave(filename,ticks,FILE_COMMON))
         PrintFormat("FileSave() a échoué, erreur=%d",GetLastError());
     }
   else
      PrintFormat("Echec de CopyTicks(%s), Erreur=",_Symbol,GetLastError());
//--- Relecture des ticks depuis le fichier
   ArrayFree(ticks);
   long count=FileLoad(filename,ticks,FILE_COMMON);
   if(count!=-1)
     {
      Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags");
      for(int i=0;i<count;i++)
        {
         PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x",
         TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000,
         ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags);
        }
     }
  }

Voir aussi

Structures et Classes, FileWriteArray, FileWriteStruct, FileLoad, FileWrite