Как из БИН файла выгрузить в массив

 

Всем алго трейдерам привет.

Как из Бинарного файла выгрузить обратно в массив для анализа.

Обьявил трёх мерный массив

array[1000,30,7200];

Если правильно понимаю массив то (1000 линий, 30 Столбиков)- одна страница и 7200 Страниц будем условно говорить в папке.

В массив складываю по сессиям  1 минута. 7200 сесий в неделе.

После складываю в фаил бин Как теперь вернуть всё в трёхмерный массив для анализа и сортировки.

И ещо одно Наблюдал за записью в бин фаил если дописывать то увеличивается в 2 раза от исходной величины Пример. массив 10мб  если дозаписывать не стирая фаил то за каждой записью дописывает по 10 и получается 10.20.30 итд. Если правильно понимаю то запись ведётся как на обыкнавенную лентачьную касету с дозаписью а не перезаписью... Подтвердите наблюдения.

Заранее спасибо

 

Было-бы разумно ко всему этому тексту добавить описание записи массива в файл. Пока такое впечатление, что массив записан в блокноте карандашом.

Но, если файл записан функцией FileWriteArray то рядом с описанием этой функции есть описание функции чтения массива из файла типа .bin FileReadArray 

Документация по MQL5: Файловые операции / FileReadArray
Документация по MQL5: Файловые операции / FileReadArray
  • www.mql5.com
//| Структура для хранения данных о ценах                            | //| Script program start function                                    |
 

Да здесь вы полнастью правы де дочитал.


Сейчас возникла другая потребность. Нужно получить колличество ЗАПОЛНЕННЫХ элементов массива без сортировки.

Обьявленный массив double array[1000,30];

После запалнения массива ,массив заполняется значениями цены , нужно определить колличество элементов  которые содержат цену Проверять нужно array[0,2] - array[1000,2] Какая функция здесь мне поможет На выходе фочется знать что колличество заполненых это array[156,2] Вот както так вижу.

Целью является отфил;тровка дублей в 3 мерном массиве

Заранее спасибо.

 
Yevheniy Kopanitskyy:

Да здесь вы полнастью правы де дочитал.


Сейчас возникла другая потребность. Нужно получить колличество ЗАПОЛНЕННЫХ элементов массива без сортировки.

Обьявленный массив double array[1000,30];

После запалнения массива ,массив заполняется значениями цены , нужно определить колличество элементов  которые содержат цену Проверять нужно array[0,2] - array[1000,2] Какая функция здесь мне поможет На выходе фочется знать что колличество заполненых это array[156,2] Вот както так вижу.

Целью является отфил;тровка дублей в 3 мерном массиве

Заранее спасибо.

При заполнении массива вести учет.

Ну или просто перебирать массив и считать не нули, только сначала массив надо инициализировать нулем.

 
проще написать класс сериализации, тогда хоть понимание будет как все это делается и соответственно вопросов не будет возникать
 
Спасибо за советы займусь перебором всвободное время.
 

Спасибо всем Нашол вроде как элемемнтарый способ перебора.

double body[2000,10]
int i;
         for(i=1;i<2000;i++)
           {
            if(body[i,0]==0)
              {
               Print(i);
               break;
              }

           }
Здесь нахожу ящейку в не сортированном массиве которая содержит 0 Остальные ячёйки выше содержат цену или заполнитель которым не является 0.Так я выяснил в массиве номер индекса до куда мне нужно переберать. Избежал лишних переборов.
Далее  по индексу сопоставляю ячейки с данными и провожу операции вычисления. 

Может кому прегодится.
Щас закончю индикатор
Причина обращения: