MODE_SMMA
ist bereits der ganzzahlige Wert 2.
Print(IntegerToString(MODE_SMMA));
- www.mql5.com
ist bereits der ganzzahlige Wert 2.
Was Sie sagen, passt nicht zu meinen Bedürfnissen. Wie Sie in meiner Frage lesen können, weiß ich, wie man einen Enum-Wert in eine Zeichenkette umwandelt, aber was ich tun möchte, ist genau das Gegenteil:
mit dem Code:
int b = StringToEnum("MODE_SMMA");
Ich möchte das Folgende erhalten:
b = 2
Es gibt keinen StringToEnum.
MODE_SMMA
ist bereits der Integer-Wert 2.
int b=MODE_SMMA; Print("b= ",b);
int b; string StringToEnum="MODE_SMMA"; if(StringToEnum=="MODE_SMMA"){b=2;} Print("b= ",b);
Was Sie sagen, passt nicht zu meinen Bedürfnissen. Wie Sie in meiner Frage lesen können, weiß ich, wie man einen Enum-Wert in eine Zeichenkette umwandelt, aber was ich tun möchte, ist genau das Gegenteil:
mit dem Code:
int b = StringToEnum("MODE_SMMA");
Ich möchte das Folgende erhalten:
b = 2
Ich danke euch, Jungs
Ich warte immer noch auf einen gültigen Anwendungsfall für die StringToEnum-Funktion:-)
Vielen Dank, Alain, für deinen Rat, aber eigentlich habe ich keine gute Lösung für mein Problem,
also muss ich einige seltsame Workarounds nehmen.
Es wäre wirklich schön, wenn mql5 die dynamische Code-Auswertung wie die eval(...) -Funktion in PHP und Javascript unterstützen würde,
dann könnten wir kleine Codestücke aus externen Dateien laden (manchmal sehr interessant) und sogar die Funktion: StringToEnum einfach wie:
eval("return " + enumId + ";");
}
Mit anderen Worten, mit der Unterstützung der eval(...) -Funktion könnten wir viele Dinge gleichzeitig lösen.
Das könnte ein sehr interessanter Ratschlag für das MT5-Entwicklerteam sein.
Vielen Dank, Cyberglassed.
danke Alain für deinen Rat, aber eigentlich habe ich keine gute Lösung für mein Problem,
also muss ich einige seltsame Workarounds nehmen.
Es wäre wirklich schön, wenn mql5 eine dynamische Code-Auswertung wie die eval(...) -Funktion in PHP und Javascript unterstützen würde,
dann könnten wir kleine Codestücke aus externen Dateien laden (manchmal sehr interessant) und sogar die Funktion: StringToEnum einfach wie:
eval("return " + enumId + ";");
}
Mit anderen Worten, mit der Unterstützung der eval(...) -Funktion könnten wir viele Dinge gleichzeitig lösen.
Das könnte ein sehr interessanter Ratschlag für das MT5-Entwicklerteam sein.
Vielen Dank, Cyberglassed.
In MQL gibt es bereits die Möglichkeit, entweder externe Bibliotheken (als DLLs) oder bestimmte #include-Dateien zu laden und es auf diese Weise geschehen zu lassen. Da MQL auch eine OOP-Sprache ist, könnten Sie theoretisch diesen Funktionscode selbst schreiben und ihn einfach in Ihre Programme einfügen, für die Sie diese spezielle Funktionalität benötigen. Entweder innerhalb des Codes Ihres EA oder als externe Datei.
Danke JD4, aber leider löst das meine Anforderungen nicht, denn wenn man externe DLLs lädt, übergibt man ihnen einige Parameter und erhält ein Ergebnis, das auf diesen Parametern basiert, das ist OK, aber da programmiert man in einer anderen Sprache/Umgebung/Ort und nicht genau in mql5. Ich habe benutzerdefinierte DLLs programmiert und sie in mql5 geladen, wenn es für mich keine Rolle spielt, in welcher Sprache meine Parameter verarbeitet werden, aber in diesem Thread wollte ich, dass die Daten in mql5 verarbeitet werden, damit ich (zum Beispiel) lokale und globale Variablen nutzen kann. Wenn Sie externe DLLs verwenden, werden Sie die Werte der lokalen und globalen Variablen nicht kennen, da es sich um eine externe Verarbeitungsmaschine handelt. Wenn Sie dann eine Funktion wie eval(...) in mql5 zur Verfügung haben (im Moment ist das nicht der Fall, weil nicht implementiert), können Sie globale und lokale Variablen und sogar Funktionen verwenden.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo, wenn ich das tue:
string a = EnumToString(MODE_SMMA);
erhalte ich:
a ="MODE_SMMA"
Nun hätte ich gerne eine Funktion, die genau das Gegenteil macht, ich meine etwas wie:
int b = StringToEnum("MODE_SMMA");
b = 2
wobei 2 der int-Wert ist, der der Konstante"MODE_SMMA" zugeordnet ist.
Mit freundlichen Grüßen, cyberglassed.