bazı "StringToEnum" işlevi veya alternatifi var mı?

Marco vd Heijden  
MODE_SMMA

zaten tamsayı değeri 2'dir.

 Print ( IntegerToString ( MODE_SMMA ));
cyberglassed  
Marco vd Heijden :

zaten tamsayı değeri 2'dir.

Söyledikleriniz benim ihtiyaçlarıma uymuyor. Sorumu okuyabileceğiniz gibi, enum değerinden dizeye nasıl dönüştürüleceğini biliyorum, ancak yapmak istediğim tam tersi:

kod ile:

int b = StringTo Enum ("MODE_SMMA");

Aşağıdakileri almak istiyorum:

b = 2

Marco vd Heijden  

StringToEnum yok.

 MODE_SMMA

zaten tamsayı değeri 2'dir.

   int b= MODE_SMMA ;
   Print ( "b= " ,b);



 int b;

string StringToEnum= "MODE_SMMA" ;

if (StringToEnum== "MODE_SMMA" ){b= 2 ;}

Print ( "b= " ,b);



JD4  
cyberglassed :

Söyledikleriniz benim ihtiyaçlarıma uymuyor. Sorumu okuyabileceğiniz gibi, enum değerinden dizeye nasıl dönüştürüleceğini biliyorum, ancak yapmak istediğim tam tersi:

kod ile:

int b = StringTo Enum ("MODE_SMMA");

Aşağıdakileri almak istiyorum:

b = 2

Ayrıca Marco'nun işaret ettiği bir alternatif olup olmadığını da sordunuz.
cyberglassed  

tavsiyen için teşekkür ederim Alain ama aslında sorunum için iyi bir çözümüm yok,
bu yüzden bazı garip geçici çözümler bulmam gerekiyor.
mql5'in PHP ve Javascript'teki eval(...) işlevi gibi dinamik olarak kod değerlendirmesini desteklemesi gerçekten güzel olurdu,
sonra harici dosyalardan (bazen çok ilginç) küçük kod parçaları yükleyebilir ve hatta şu işlevi uygulayabiliriz: StringToEnum kolayca:

int StringToEnum (dize enumId) {
eval("dönüş" + enumId + ";");
}

Yani eval(...) fonksiyonunun desteği ile aynı anda birçok şeyi çözebiliriz.

Bu, MT5 geliştirici ekibi için çok ilginç bir tavsiye olabilir.

Teşekkürler, Cyberglassed.
JD4  
cyberglassed :

tavsiyen için teşekkür ederim Alain ama aslında sorunum için iyi bir çözümüm yok,
bu yüzden bazı garip geçici çözümler bulmam gerekiyor.
mql5'in PHP ve Javascript'teki eval(...) işlevi gibi dinamik olarak kod değerlendirmesini desteklemesi gerçekten güzel olurdu,
sonra harici dosyalardan (bazen çok ilginç) küçük kod parçaları yükleyebilir ve hatta şu işlevi uygulayabiliriz: StringToEnum kolayca:

int StringToEnum (string enumId) {
eval("dönüş" + enumId + ";");
}

Yani eval(...) fonksiyonunun desteği ile aynı anda birçok şeyi çözebiliriz.

Bu, MT5 geliştirici ekibi için çok ilginç bir tavsiye olabilir.

Teşekkürler, Cyberglassed.
MQL'de, harici kitaplıkları (DLL'ler olarak) veya belirli #include dosyalarını yükleme ve bu şekilde olmasını sağlama yeteneği zaten vardır. MQL aynı zamanda bir OOP dili olduğundan, teoride, bu fonksiyon kodunu kendiniz yazabilir ve sadece o özel fonksiyona ihtiyaç duyduğunuz programlarınıza dahil edebilirsiniz. EA'nızın kodu içinde veya harici bir dosya olarak.
cyberglassed  
JD4 :
MQL'de, harici kitaplıkları (DLL'ler olarak) veya belirli #include dosyalarını yükleme ve bu şekilde olmasını sağlama yeteneği zaten vardır. MQL aynı zamanda bir OOP dili olduğundan, teoride, bu fonksiyon kodunu kendiniz yazabilir ve sadece o özel fonksiyona ihtiyaç duyduğunuz programlarınıza dahil edebilirsiniz. EA'nızın kodu içinde veya harici bir dosya olarak.

teşekkür ederim JD4 ama ne yazık ki bu benim gereksinimlerimi çözmüyor çünkü harici DLL'leri yüklediğinizde bazı parametreler iletiyorsunuz ve bu parametrelere dayalı bir sonuç alıyorsunuz, sorun değil, ama orada başka bir dilde/ortamda/yerde programlama yapıyorsunuz ve değil tam olarak mql5'te. Özel DLL'leri programladım ve benim için parametrelerimi işleyecek dil önemli olmadığında onu mql5'e yükledim, ancak bu iş parçacığında verilerin mql5'te işlenmesini istedim, böylece (örneğin) yerel ve globalden yararlanabilirim değişkenler. Harici DLL'ler kullanırsanız, yerel ve global değişkenlerin değerlerini bilemezsiniz, çünkü bu harici bir işleme makinesi gibidir. Daha sonra, mql5'te bulunan eval(...) gibi bir fonksiyonunuz varsa (şu anda durum böyle değil çünkü uygulanmadı), o zaman global ve yerel değişkenleri ve hatta fonksiyonları kullanabilirsiniz.

Neden: