Не совсем четко описана задача, но общий смысл понятен: вставить массив данных в код. В MetaEditor'е для этого есть еще один путь: Правка - Вставить. Далее уже по вкусу выбирать: в виде бинарного или текстового массива.
Массив бинарный.
Можно, конечно, и текстовый. Но, большие текстовые массивы - уж очень долго компилируются...
Склоняюсь к отдельному внешнему файлу...
Я не сталкивался, но МТ4 работает с файлами на раз-два, точно также как и МТ5.
а туда можно закинуть сколько угодно констант
Я не сталкивался, но МТ4 работает с файлами на раз-два, точно также как и МТ5.
а туда можно закинуть сколько угодно констант
Да, я уже почти переписал все на файловые операции...
Просто ресурсы подлинковываются к самому исполнимому модулю... А если читать из файла - то он лежит отдельно. Проблема небольшая, но, просто не особо удобно...
Да, я уже почти переписал все на файловые операции...
Просто ресурсы подлинковываются к самому исполнимому модулю... А если читать из файла - то он лежит отдельно. Проблема небольшая, но, просто не особо удобно...
если большой константный массив/таблица то внешним генератором сделать код и через #include вставить и не парится.
был-бы привычный язык с объектными модулями, то действие производилось бы линковщиков. "вставить бинарный блоб в секцию __DATA__ с такой вот символической ссылкой"
Да, я уже почти переписал все на файловые операции...
Просто ресурсы подлинковываются к самому исполнимому модулю... А если читать из файла - то он лежит отдельно. Проблема небольшая, но, просто не особо удобно...
А линк через #include в OnInit() разве не решит задачу? Они же константы.
если большой константный массив/таблица то внешним генератором сделать код и через #include вставить и не парится.
был-бы привычный язык с объектными модулями, то действие производилось бы линковщиков. "вставить бинарный блоб в секцию __DATA__ с такой вот символической ссылкой"
Да, все верно.
Но, забивать массив виде кода - не самое лучшее решение, на мой взгляд... Просто выглядит некрасиво, да и компилируется долго.
Так что я остановился на загрузке из файла... Все так и сделал - код получился переносимый, хотя и два модуля в эксперте.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Написал эксперта, который в работе использует довольно большой массив константных данных.
Все, ясное дело, пишется под Мт5, так что, не долго думая, запихнул этот массив в ресурсную переменную, все отлично, отладил, все работает...
Для окончательного использования осталось перекомпилировать для МТ4, и можно выставлять на счет...
Упс...
"resource variables are supported by MQL5 language only"...
Приехали... Блин.
Никто не сталкивался с задачей переносимости кода с ресурсами ? Какие методы тут годятся ?
В принципе, у меня только одна идея - когда в МТ4 эта переменная загружается из файла при инициализации... Но, проблема в том, что вместо одного модуля получается модуль и файл с данными.... Никто ничего не придумает получше ? Чтобы и в МТ4 один файл оставался ?