MODE_SMMA
уже является целочисленным значением 2.
Print(IntegerToString(MODE_SMMA));
- www.mql5.com
уже является целочисленным значением 2.
То, что вы говорите, не соответствует моим потребностям. Как вы можете прочитать в моем вопросе, я знаю, как преобразовать значение перечисления в строку, но я хочу сделать прямо противоположное:
с помощью кода:
int b = StringToEnum("MODE_SMMA");
Я хочу получить следующее:
b = 2
Не существует StringToEnum.
MODE_SMMA
уже является целочисленным значением 2.
int b=MODE_SMMA; Print("b= ",b);
int b; string StringToEnum="MODE_SMMA"; if(StringToEnum=="MODE_SMMA"){b=2;} Print("b= ",b);
То, что вы говорите, не соответствует моим потребностям. Как вы можете прочитать в моем вопросе, я знаю, как преобразовать значение перечисления в строку, но я хочу сделать прямо противоположное:
с помощью кода:
int b = StringToEnum("MODE_SMMA");
Я хочу получить следующее:
b = 2
спасибо вам, ребята
Спасибо Ален за совет, но на самом деле у меня нет хорошего решения для моей проблемы,
поэтому мне приходится прибегать к странным обходным путям.
Было бы очень хорошо, если бы mql5 поддерживал динамическую оценку кода, как функция eval(...) в PHP и Javascript,
тогда мы могли бы загружать небольшие фрагменты кода из внешних файлов (иногда очень интересные) и даже реализовать функцию: StringToEnum легко как:
eval("return " + enumId + ";");
}
Другими словами, с помощью функции eval(...) мы могли бы решать множество задач одновременно.
Это может быть очень интересным советом для команды разработчиков MT5.
Спасибо, Cyberglassed.
Спасибо Ален за совет, но на самом деле у меня нет хорошего решения для моей проблемы,
поэтому мне приходится использовать некоторые странные обходные пути.
Было бы очень хорошо, если бы mql5 поддерживал динамическую оценку кода, как функция eval(...) в PHP и Javascript,
тогда мы могли бы загружать небольшие фрагменты кода из внешних файлов (иногда очень интересные) и даже реализовать функцию: StringToEnum легко как:
eval("return " + enumId + ";");
}
Другими словами, с помощью функции eval(...) мы могли бы решать множество задач одновременно.
Это может быть очень интересным советом для команды разработчиков MT5.
Спасибо, Cyberglassed.
В MQL уже есть возможность загружать либо внешние библиотеки (как DLL), либо определенные #include файлы и делать это таким образом. Поскольку MQL также является ООП языком, теоретически, вы можете написать код этой функции самостоятельно и просто включить его в свои программы, в которых вам нужна эта функциональность. Либо в код вашего эксперта, либо как внешний файл.
Спасибо JD4, но к сожалению это не решает моих требований, потому что когда вы загружаете внешнюю DLL вы передаете ей некоторые параметры и получаете результат на основе этих параметров, это хорошо, но там вы программируете на другом языке/среде/месте, а не точно в mql5. Я программировал пользовательские DLL и загружал их в mql5, когда для меня не имеет значения язык, который будет обрабатывать мои параметры, но в этом потоке я хотел, чтобы данные обрабатывались на mql5, чтобы я мог использовать (например) локальные и глобальные переменные. Если вы используете внешние DLL, то там вы не будете знать о значениях локальных и глобальных переменных, потому что это как бы внешняя машина обработки. Затем, если в mql5 есть функция типа eval(...) (сейчас это не так, потому что не реализовано), то вы можете использовать глобальные и локальные переменные, и даже функции.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, если:
string a = EnumToString(MODE_SMMA);
я получаю:
a ="MODE_SMMA"
Теперь, я хотел бы получить функцию, которая делает все наоборот, я имею в виду что-то вроде:
int b = StringToEnum("MODE_SMMA");
b = 2
где 2 - значение int, связанное с константой:"MODE_SMMA".
С уважением, cyberglassed.