FileReadArray

Lê a partir de um arquivo do tipo arrays BIN de qualquer tipo, exceto string (pode ser uma array de estruturas, não contendo strings e arrays dinâmicas).

uint  FileReadArray(
   int    file_handle,               // Manipular arquivo
   void&  array[],                   // Array para gravar
   int    start=0,                   // Iniciar posição array para escrever
   int    count=WHOLE_ARRAY          // contar para ler
   );

Parâmetros

file_handle

[in]  Descritor de arquivo retornado pelo FileOpen().

array[]

[out] Uma array onde os dados serão carregados.

start=0

[in]  Posição inicial para escrever para o array.

count=WHOLE_ARRAY

[in]  Número de elementos para ler. Pelo padrão, ler todo o array (count=WHOLE_ARRAY).

Valor do Retorno

Número de elementos para ler.

Observação

Array de seqüências pode ser lido apenas a partir do arquivo do tipo TXT. Se necessário, a função tenta aumentar o tamanho do array.

Exemplo (o arquivo obtido após a execução do exemplo pela função FileWriteArray é usado aqui)

//--- mosta a janela dos parâmetros de entrada quando lançado o script
#property script_show_inputs
//--- parâmetros de entrada
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
//+------------------------------------------------------------------+
//| Estrutura para armazenamento de dados de preços                  |
//+------------------------------------------------------------------+
struct prices
  {
   datetime          date; // data
   double            bid;  // bid preço
   double            ask;  // ask preço
  };
//+------------------------------------------------------------------+
//| Programa Script da função start (iniciar)                        |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- estrutura array
   prices arr[];
//--- caminho do arquivo
   string path=InpDirectoryName+"//"+InpFileName;
//--- abre o arquivo
   ResetLastError();
   int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- ler todos os dados do arquivo para o array
      FileReadArray(file_handle,arr);
      //--- receber o tamanho do array
      int size=ArraySize(arr);
      //--- imprimir dados a partir do array
      for(int i=0;i<size;i++)
         Print("Data = ",arr[i].date," Bid = ",arr[i].bid," Ask = ",arr[i].ask);
      Print("Dados total = ",size);
      //--- fechar o arquivo
      FileClose(file_handle);
     }
   else
      Print("Abrir arquivo falhou, erro ",GetLastError());
  }

Também Veja

Variáveis,FileWriteArray