"StringToEnum" 함수 또는 대안이 있습니까?

 

안녕하세요, 내가 할 경우:

문자열 a = EnumToString(MODE_SMMA);

나는 얻다:

a = " MODE_SMMA "

이제 저는 그 반대의 기능 을 하고 싶습니다. 제 말은 다음과 같습니다.

int b = StringTo Enum ("MODE_SMMA");

b = 2

여기서 2는 상수와 관련된 int 값입니다. " MODE_SMMA "


안부, 사이버글래스.

 
MODE_SMMA

이미 정수 값 2입니다.

 Print ( IntegerToString ( MODE_SMMA ));
 
https://www.mql5.com/en/docs/convert 에는 변환 기능의 큰 그룹 목록이 있습니다.
Documentation on MQL5: Conversion Functions
Documentation on MQL5: Conversion Functions
  • www.mql5.com
Conversion Functions - Reference on algorithmic/automated trading language for MetaTrader 5
 
Marco vd Heijden :

이미 정수 값 2입니다.

당신이 말하는 것은 내 필요에 맞지 않습니다. 내 질문에서 읽을 수 있듯이 열거형 값에서 문자열로 변환하는 방법을 알고 있지만 내가 하고 싶은 일은 그 반대입니다.

코드:

int b = StringTo Enum ("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);



 
cyberglassed :

당신이 말하는 것은 내 필요에 맞지 않습니다. 내 질문에서 읽을 수 있듯이 열거형 값에서 문자열로 변환하는 방법을 알고 있지만 내가 하고 싶은 일은 그 반대입니다.

코드:

int b = StringTo Enum ("MODE_SMMA");

나는 다음을 얻고 싶다:

b = 2

당신은 또한 Marco가 지적한 대안이 있는지 물었습니다.
 

감사합니다

 

Alain에게 조언을 해주셔서 감사합니다. 하지만 사실 제 문제에 대한 좋은 해결책이 없습니다.
그래서 나는 몇 가지 이상한 해결 방법을 취해야합니다.
mql5가 PHPJavascripteval(...) 함수와 같은 동적으로 코드 평가 를 지원하면 정말 좋을 것입니다.
그러면 우리는 외부 파일에서 작은 코드 조각을 로드할 수 있고(때로는 매우 흥미로운) 다음과 같이 쉽게 StringToEnum 함수를 구현할 수도 있습니다.

int StringToEnum (문자열 enumId) {
평가("반환" + enumId + ";");
}

즉, eval(...) 함수의 지원으로 많은 것을 동시에 해결할 수 있습니다.

이는 MT5 개발자 팀에게 매우 흥미로운 조언이 될 수 있습니다.

감사합니다, 사이버글래스드.
 
cyberglassed :

Alain에게 조언을 해주셔서 감사합니다. 하지만 사실 제 문제에 대한 좋은 해결책이 없습니다.
그래서 나는 몇 가지 이상한 해결 방법을 취해야합니다.
mql5가 PHPJavascripteval(...) 함수와 같은 동적으로 코드 평가 를 지원하면 정말 좋을 것입니다.
그러면 우리는 외부 파일에서 작은 코드 조각을 로드할 수 있고(때로는 매우 흥미로운) 다음과 같이 쉽게 StringToEnum 함수를 구현할 수도 있습니다.

int StringToEnum (문자열 enumId) {
평가("반환" + enumId + ";");
}

즉, eval(...) 함수의 지원으로 많은 것을 동시에 해결할 수 있습니다.

이는 MT5 개발자 팀에게 매우 흥미로운 조언이 될 수 있습니다.

감사합니다, 사이버글래스드.
MQL에는 이미 외부 라이브러리(DLL로)나 특정 #include 파일을 로드하고 이러한 방식으로 수행할 수 있는 기능이 있습니다. MQL은 또한 OOP 언어이므로 이론상 해당 기능 코드를 직접 작성하고 특정 기능이 필요한 프로그램에 포함할 수 있습니다. EA 코드 내에서 또는 외부 파일로.
 
JD4 :
MQL에는 이미 외부 라이브러리(DLL로)나 특정 #include 파일을 로드하고 이러한 방식으로 수행할 수 있는 기능이 있습니다. MQL은 또한 OOP 언어이므로 이론상 해당 기능 코드를 직접 작성하고 특정 기능이 필요한 프로그램에 포함할 수 있습니다. EA 코드 내에서 또는 외부 파일로.

JD4에게 감사하지만 불행히도 외부 DLL을 로드할 때 일부 매개변수를 전달하고 해당 매개변수를 기반으로 결과를 얻기 때문에 내 요구사항을 해결하지 못합니다. 정확히 mql5. 사용자 지정 DLL을 프로그래밍하고 매개변수를 처리할 언어가 중요하지 않을 때 mql5에 로드했지만 이 스레드에서는 mql5에서 데이터를 처리하여 로컬 및 글로벌 변수. 외부 DLL을 사용하는 경우 외부 처리 기계와 같기 때문에 로컬 및 전역 변수의 값에 대해 알 수 없습니다. 그런 다음 mql5에서 사용 가능한 eval(...) 과 같은 함수 가 있는 경우(지금은 구현되지 않았기 때문에 그렇지 않음) 전역 및 지역 변수, 심지어 함수를 사용할 수 있습니다.

사유: