MODE_SMMA
ya es el valor entero 2.
Print(IntegerToString(MODE_SMMA));

- www.mql5.com
ya es el valor entero 2.
Lo que dices no se ajusta a mis necesidades. Como puedes leer en mi pregunta, sé cómo convertir de valor enum a cadena, pero lo que quiero hacer es justo lo contrario:
con el código:
int b = StringToEnum("MODO_SMMA");
Quiero obtener lo siguiente
b = 2
No hay StringToEnum.
MODE_SMMA
ya es el valor entero 2.
int b=MODE_SMMA; Print("b= ",b);
int b; string StringToEnum="MODE_SMMA"; if(StringToEnum=="MODE_SMMA"){b=2;} Print("b= ",b);
Lo que dices no se ajusta a mis necesidades. Como puedes leer en mi pregunta, sé cómo convertir de valor enum a cadena, pero lo que quiero hacer es justo lo contrario:
con el código:
int b = StringToEnum("MODO_SMMA");
Quiero obtener lo siguiente
b = 2
gracias chicos
gracias Alain por tu consejo pero en realidad no tengo una buena solución para mi problema,
así que tengo que tomar algunas soluciones extrañas.
Estaría muy bien que mql5 soportara la evaluación dinámica de código como la función eval(...) en PHP y Javascript,
entonces podríamos cargar pequeños trozos de códigos desde archivos externos (a veces muy interesantes) e incluso implementar la función StringToEnum fácilmente como:
eval("return " + enumId + ";");
}
En otras palabras, con el apoyo de la función eval (...) podríamos resolver muchas cosas al mismo tiempo.
Eso podría ser un consejo muy interesante para el equipo de desarrolladores de MT5.
Gracias, Cyberglassed.
Gracias Alain por tus consejos pero en realidad no tengo una buena solución para mi problema,
así que tengo que tomar algunas soluciones extrañas.
Estaría muy bien que mql5 soportara la evaluación dinámica de código como la función eval(...) en PHP y Javascript,
entonces podríamos cargar pequeños trozos de códigos desde archivos externos (a veces muy interesantes) e incluso implementar la función StringToEnum fácilmente como:
eval("return " + enumId + ";");
}
En otras palabras, con el apoyo de la función eval (...) podríamos resolver muchas cosas al mismo tiempo.
Eso podría ser un consejo muy interesante para el equipo de desarrolladores de MT5.
Gracias, Cyberglassed.
La capacidad ya está allí en MQL para cargar ya sea bibliotecas externas (como DLLs) o archivos específicos #include y hacer que suceda de esta manera. Como MQL es también un lenguaje OOP, en teoría, usted podría escribir ese código de la función a ti mismo, y sólo incluirlo en sus programas que usted necesita que la funcionalidad particular en. Ya sea dentro del código de su EA, o como un archivo externo.
gracias JD4, pero lamentablemente eso no resuelve mis requerimientos porque cuando cargas DLLs externas le pasas unos parámetros y obtienes un resultado en base a esos parámetros, eso está bien, pero ahí estás programando en otro lenguaje/entorno/lugar y no exactamente en mql5. Yo he programado DLLs personalizadas y las he cargado en mql5 cuando para mí no importa el lenguaje que procesará mis parámetros, pero en este hilo quería que los datos se procesaran en mql5 para poder hacer uso (por ejemplo) de variables locales y globales. Si usas DLLs externas, ahí no sabrás de los valores de las variables locales y globales, porque es como una máquina de procesamiento externa. Entonces, si tienes una función como eval(...) disponible en mql5 (ahora mismo no es el caso porque no está implementada) entonces puedes hacer uso de variables globales y locales, e incluso de funciones.

- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Hola, si lo hago
string a = EnumToString(MODE_SMMA);
obtengo:
a =" MODE_SMMA"
Ahora bien, me gustaría alguna función que hiciera justo lo contrario, me refiero a algo así como
int b = StringToEnum("MODE_SMMA");
b = 2
donde 2 es el valor int asociado a la constante: "MODE_SMMA"
Saludos, cyberglassed.