
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Алексей, а условную компиляцию здесь нельзя применить? Не получится удобней?
Я думаю, это будет более громоздко, чем выбор строки из многомерного строкового массива. К тому же нет определенного дефайна, который указывал бы на язык терминала, то есть придется задавать этот дефайн самому.
Ну, и наконец, получится несколько вариантов .ex* файлов, по одному на каждый язык
по идее можно сделать csv файл с переводами и считывать его в OnInit
id ; English ; Russian
0 ; "spread" ; "Спрэд"
1 ; "profit" ; "Профит"
а файл уже запихнуть в ресурсы. Да и вообще такой файл можно сделать один на все проекты
Я делаю так:
Я примерно так себе и представляю, вопрос был, как эти строковые массивы запихнуть в ресурсы. Уже понимаю, что никак, придется вынести в отдельный .mqh файл наверное.
А если этот *.mqh файл сделать в виде класса. В этом классе начальный метод - инициализация - выбор языка в зависимости от языка терминала.
И потом просто метод GetRow(const int row) и будет этот метод, в зависимости от языка, возвращать строку под номером таким-то из соответствующего списка или массива:
Вы хотели сказать - арифметика указателей? В MQL не работает, т.к. тутошние указатели не указывают на адреса памяти, это просто дескрипторы в виндовской интерпретации.
Я хотел сказать и сказал спецификация. :) Описание арифметики часть спецификации. Ну ладно, вопрос терминологии.
Ну, не работает, так не работает. Жаль.
Я примерно так себе и представляю, вопрос был, как эти строковые массивы запихнуть в ресурсы. Уже понимаю, что никак, придется вынести в отдельный .mqh файл наверное.
Для строк по определению не нужны ресурсы, т.к. строки в массивах это и есть подключаемые "ресурсы". Вообще абсолютно любой файл может хранится в программе в виде обычного массива uchar. Так у меня например хранится xml файл настроек программы:
Естественно необходимо написать специальный конвертер, загружающий произвольный файл с диска и конвертирующий его в MQL массив. Кстати, подобные ресурсы можно еще и сжимать zip'ом, благодаря чему будет достигаться еще большая экономия.
А если этот *.mqh файл сделать в виде класса. В этом классе начальный метод - инициализация - выбор языка в зависимости от языка терминала.
И потом просто метод GetRow(const int row) и будет этот метод, в зависимости от языка, возвращать строку под номером таким-то из соответствующего списка или массива:
Кстати, это мысль. Будет попроще в использовании. Наверное, так и сделаю, сенкс за идею.
Кстати, это мысль. Будет попроще в использовании. Наверное, так и сделаю, сенкс за идею.
Вот только кажется массивы типа string нельзя проинициализировать в конструкторе?
В конструкторе никакие массивы нельзя проинициализировать одной строкой типа
Можно только поэлементно
Но можно задать начальные значения массивам с модификатором static или const static. Пример: