MODE_SMMA
já é o valor inteiro 2.
Print(IntegerToString(MODE_SMMA));
- www.mql5.com
já é o valor inteiro 2.
O que você diz não se ajusta às minhas necessidades. Como você pode ler na minha pergunta, eu sei como converter de valor inteiro para string, mas o que eu quero fazer é exatamente o oposto:
com o código:
int b = StringToEnum("MODE_SMMA");
Eu quero obter o seguinte:
b = 2
Não há nenhum StringToEnum.
MODE_SMMA
já é o valor inteiro 2.
int b=MODE_SMMA; Print("b= ",b);
int b; string StringToEnum="MODE_SMMA"; if(StringToEnum=="MODE_SMMA"){b=2;} Print("b= ",b);
O que você diz não se ajusta às minhas necessidades. Como você pode ler na minha pergunta, eu sei como converter de valor enumeral para string, mas o que eu quero fazer é exatamente o oposto:
com o código:
int b = StringToEnum("MODE_SMMA");
Eu quero obter o seguinte:
b = 2
obrigado, pessoal
obrigado Alain por seus conselhos, mas na verdade eu não tenho uma boa solução para meu problema,
portanto, tenho que dar algumas voltas estranhas.
Seria muito bom que o mql5 suporte dinamicamente a avaliação de código como a função eval(...) em PHP e Javascript,
então poderíamos carregar pequenos pedaços de códigos de arquivos externos (às vezes muito interessantes) e até mesmo implementar a função: StringToEnum facilmente como:
eval("return " + enumId + ";");
}
Em outras palavras, com o apoio da função eval(...) poderíamos resolver muitas coisas ao mesmo tempo.
Isso poderia ser um conselho muito interessante para a equipe de desenvolvedores do MT5.
Obrigado, Cyberglassed.
obrigado Alain por seus conselhos, mas na verdade eu não tenho uma boa solução para meu problema,
portanto, tenho que dar algumas voltas estranhas.
Seria muito bom que o mql5 suporte dinamicamente a avaliação de código como a função eval(...) em PHP e Javascript,
então poderíamos carregar pequenos pedaços de códigos de arquivos externos (às vezes muito interessantes) e até mesmo implementar a função: StringToEnum facilmente como:
eval("return " + enumId + ";");
}
Em outras palavras, com o apoio da função eval(...) poderíamos resolver muitas coisas ao mesmo tempo.
Isso poderia ser um conselho muito interessante para a equipe de desenvolvedores do MT5.
Obrigado, Cyberglassed.
A capacidade já existe na MQL de carregar bibliotecas externas (como DLLs) ou arquivos #incluídos específicos e fazer com que isso aconteça dessa forma. Como a MQL também é uma linguagem OOP, em teoria, você mesmo poderia escrever esse código de função, e apenas incluí-lo em seus programas nos quais você precisava dessa funcionalidade em particular. Ou dentro do código de sua EA, ou como um arquivo externo.
Obrigado JD4, mas infelizmente isso não resolve meus requisitos porque quando você carrega DLLs externas você passa alguns parâmetros e obtém um resultado baseado nesses parâmetros, tudo bem, mas lá você está programando em outra linguagem/ambiente/local e não exatamente em mql5. Eu programei DLLs personalizadas e carreguei-as em mql5 quando para mim não importa a linguagem que irá processar meus parâmetros, mas neste tópico eu queria que os dados fossem processados em mql5 para poder fazer uso (por exemplo) de variáveis locais e globais. Se você usar DLLs externas, aí você não conhecerá os valores das variáveis locais e globais, porque é como uma máquina de processamento externa. Então, se você tem uma função como eval(...) disponível em mql5 (neste momento não é o caso porque não está implementada), então você pode fazer uso de variáveis globais e locais, e até mesmo funções.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Olá, se eu fizer:
string a = EnumToString(MODE_SMMA);
Eu recebo:
a ="MODE_SMMA"; recebo: "MODE_SMMA".
Agora, eu gostaria de alguma função que fizesse exatamente o contrário, quero dizer algo do tipo:
int b = StringToEnum("MODE_SMMA");
b = 2
onde 2 é o valor int associado à constante:"MODE_SMMA".
Cumprimentos, cyberglassed.