FileReadArray
Читает массивы любых типов, кроме строковых (может быть массив структур, не содержащих строки и динамические массивы), из бинарного файла с текущего положения файлового указателя.
uint FileReadArray(
int file_handle,
void& array[],
int start=0,
int count=WHOLE_ARRAY
); |
Параметры
file_handle
[in] Файловый описатель, возвращаемый функцией FileOpen().
array[]
[out] Массив, куда данные будут загружены.
start=0
[in] Стартовая позиция позиция для чтения из массива.
count=WHOLE_ARRAY
[in] Количество элементов для чтения.
Возвращаемое значение
Примечание
Пример (используется файл, полученный в результате работы примера для функции FileWriteArray())
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//--- входные параметры
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
//+------------------------------------------------------------------+
//| Структура для хранения данных о ценах |
//+------------------------------------------------------------------+
struct prices
{
datetime date; // дата
double bid; // цена бид
double ask; // цена аск
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- массив структуры
prices arr[];
//--- путь к файлу
string path=InpDirectoryName+"//"+InpFileName;
//--- откроем файл
ResetLastError();
int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
if(file_handle!=INVALID_HANDLE)
{
//--- прочитаем все данные из файла в массив
FileReadArray(file_handle,arr);
//--- получим размер массива
int size=ArraySize(arr);
//--- распечатаем данные из массива
for(int i=0;i<size;i++)
Print("Date = ",arr[i].date," Bid = ",arr[i].bid," Ask = ",arr[i].ask);
Print("Total data = ",size);
//--- закрываем файл
FileClose(file_handle);
}
else
Print("File open failed, error ",GetLastError());
} |
Смотри также
Переменные, FileWriteArray()
|