FileReadArray

Lit les tableaux de tous les types, sauf les tableaux de chaîne (peut être un tableau des structures qui ne contient pas les chaînes et les tableaux dynamiques), du fichier binaire de la position courante de l'indicateur de fichier.

uint  FileReadArray(
   int    file_handle,               // handle du fichier
   void&  array[],                   // tableau pour l'enregistrement
   int    start=0,                   // de quelle position du tableau écrire
   int    count=WHOLE_ARRAY          // combien de lire
   );

Paramètres

file_handle

[in]  Le descripteur de fichier rendu par la fonction FileOpen().

array[]

[out] Le tableau où les données seront chargées.

start=0

[in]  La position de départ pour l'enregistrement au tableau.

count=WHOLE_ARRAY

[in] Le nombre d'éléments pour la lecture.

La valeur rendue

Le nombre d'éléments lus. Par défaut, lit tout le tableau (count=WHOLE_ARRAY).

Note

Le tableau de chaîne peut être lu seulement du fichier du type TXT.  En cas de nécessité la fonction tente d'augmenter la grandeur du tableau.

Exemple (on utilise le fichier reçu à la suite du travail de l'exemple pour la fonction FileWriteArray)

//--- montrons la fenêtre des paramètres d'entrée au lancement du script
#property script_show_inputs
//--- les paramètres d'entrée
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
//+------------------------------------------------------------------+
//| La structure pour la sauvegarde des données sur les prix                            |
//+------------------------------------------------------------------+
struct prices
  {
   datetime          date; // la date
   double            bid;  // le prix bid
   double            ask;  // le prix ask
  };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- un tableau de structure
   prices arr[];
//--- la voie vers le fichier
   string path=InpDirectoryName+"//"+InpFileName;
//--- ouvrons le fichier
   ResetLastError();
   int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- lisons toutes les données du fichier au tableau
      FileReadArray(file_handle,arr);
      //--- recevrons la taille du tableau
      int size=ArraySize(arr);
      //--- imprimons les données du tableau
      for(int i=0;i<size;i++)
         Print("Date = ",arr[i].date," Bid = ",arr[i].bid," Ask = ",arr[i].ask);
      Print("Total data = ",size);
      //--- fermons le fichier
      FileClose(file_handle);
     }
   else
      Print("File open failed, error ",GetLastError());
  }

Voir aussi

Les variables, FileWriteArray