FileReadArray

Legge da un file di tipo BIN l'array di qualunque tipo eccetto stringa (può essere un array di strutture, non contenente stringhe, ed array dinamici).

uint  FileReadArray(
   int    file_handle,               // File handle
   void&  array[],                   // Array da registrare
   int    start=0,                   // posizione di inizio dell'array, da scrivere
   int    count=WHOLE_ARRAY          // conteggio a leggere
   );

Parametri

file_handle

[in] Il descrittore di file restituito da FileOpen().

array[]

[out] Un array dove i dati verranno caricati.

start=0

[in]  Posizione di inizio per scrivere nell'array.

count=WHOLE_ARRAY

[in]  Numero di elementi da leggere. Per default, legge l'intero array (count=WHOLE_ARRAY).

Valore restituito

Numero di elementi letti.

Nota

Array stringa può essere sola lettura dal file di tipo TXT. Se necessario, la funzione prova ad incrementare la grandezza dell'array.

Esempio (il file ottenuto dopo l'esecuzione dell'esempio per la funzione FileWriteArray è qui usato)

//--- mostra la finestra dei parametri di input quando lancia lo script
#property script_show_inputs
//--- parametri di input
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
//+--------------------------------------------------------------------------------+
//| Struttura per memorizzare i dati dei prezzi                                    |
//+--------------------------------------------------------------------------------+
struct prices
  {
   datetime          date; // date
   double            bid;  // prezzo bid
   double            ask;  // prezzo ask
  };
//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
//--- struttura array
   prices arr[];
//--- percorso file
   string path=InpDirectoryName+"//"+InpFileName;
//--- apre il file
   ResetLastError();
   int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- legge tutti i dati dal file nell'array
      FileReadArray(file_handle,arr);
      //--- riceve la grandezza dell'array
      int size=ArraySize(arr);
      //--- fa il print dei dati dall'array
      for(int i=0;i<size;i++)
         Print("Date = ",arr[i].date," Bid = ",arr[i].bid," Ask = ",arr[i].ask);
      Print("Total data = ",size);
      //--- chiude il file
      FileClose(file_handle);
     }
   else
      Print("Fallimento nell'aprire il file, errore ",GetLastError());
  }

Vedi anche

Variabili, FileWriteArray