Ресурсы для МТ4

 

Написал эксперта, который в работе использует довольно большой массив константных данных.  

Все, ясное дело, пишется под Мт5, так что, не долго думая, запихнул этот массив в ресурсную переменную, все отлично, отладил, все работает...

Для окончательного использования осталось перекомпилировать для МТ4, и можно выставлять на счет... 

Упс...

"resource variables are supported by MQL5 language only"... 

Приехали... Блин. 

Никто не сталкивался с задачей переносимости кода с ресурсами ? Какие методы тут годятся ? 

В принципе, у меня только одна идея - когда в МТ4 эта переменная загружается из файла при инициализации... Но, проблема в том, что вместо одного модуля получается модуль и файл с данными.... Никто ничего не придумает получше ? Чтобы и в МТ4 один файл оставался ? 



 
Не совсем четко описана задача, но общий смысл понятен: вставить массив данных в код. В MetaEditor'е для этого есть еще один путь: Правка - Вставить. Далее уже по вкусу выбирать: в виде бинарного или текстового массива.
 
Ihor Herasko:
Не совсем четко описана задача, но общий смысл понятен: вставить массив данных в код. В MetaEditor'е для этого есть еще один путь: Правка - Вставить. Далее уже по вкусу выбирать: в виде бинарного или текстового массива.

Массив бинарный. 

Можно, конечно, и текстовый. Но, большие текстовые массивы - уж очень долго компилируются... 

Склоняюсь к отдельному внешнему файлу... 

 

Я не сталкивался, но МТ4 работает с файлами на раз-два, точно также как и МТ5.

а туда можно закинуть сколько угодно констант

 
Renat Akhtyamov:

Я не сталкивался, но МТ4 работает с файлами на раз-два, точно также как и МТ5.

а туда можно закинуть сколько угодно констант

Да, я уже почти переписал все на файловые операции... 

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

 
Georgiy Merts:

Да, я уже почти переписал все на файловые операции... 

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

если большой константный массив/таблица то внешним генератором сделать код и через #include вставить и не парится.

был-бы привычный язык с объектными модулями, то действие производилось бы линковщиков. "вставить бинарный блоб в секцию __DATA__ с такой вот символической ссылкой"

 
Georgiy Merts:

Да, я уже почти переписал все на файловые операции... 

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

А линк через #include в OnInit() разве не решит задачу? Они же константы.

 
Maxim Kuznetsov:

если большой константный массив/таблица то внешним генератором сделать код и через #include вставить и не парится.

был-бы привычный язык с объектными модулями, то действие производилось бы линковщиков. "вставить бинарный блоб в секцию __DATA__ с такой вот символической ссылкой"

Да, все верно. 

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

Так что я остановился на загрузке из файла... Все так и сделал - код получился переносимый, хотя и два модуля в эксперте.