Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   String nach einer Double benennen, um sie auszulesen (http://www.expert-advisor.com/forum/showthread.php?t=4926)

freitag 09.05.16 13:37

String nach einer Double benennen, um sie auszulesen
 
Ich muss mir strings in Schleifen so zusammenstellen, dass ich damit bestehende Doubles nach ihren Variablenwerte abrufen kann.

Es entsteht z. B. eine string "Wert001", weil schon eine double Wert001 mit irgeneinem Zahlenwert existiert.
Leider will es aber nicht klappen, dass ich damit nun den doublewert auslesen kann.
Dachte, ich kann das so:
WertneuAusgelesen = (double)Wert001;

oder so lösen:
WertneuAusgelesen = StrToDouble(Wert001);

Geht aber alles nicht. Weiß da jemand Rat?

Hosch 09.05.16 13:48

Sali,

macht doch folgendes, damit wir das klarer identifizieren können:
Poste doch bitte mal ein Code-Snippet.

So, kann man da wirklich nicht sagen, was da falsch läuft. Fakt ist, dass das so gehen muss

PHP-Code:

WertneuAusgelesen StrToDouble(Wert001); 

Zitat:

Zitat von freitag (Beitrag 34453)
Ich muss mir strings in Schleifen so zusammenstellen, dass damit bestehende Doubles nach ihren Variablenwerte abrufen kann.

Es entsteht z. B. eine string "Wert001", weil schon eine double Wert001 mit irgeneinem Zahlenwert existiert.
Leider will es aber nicht klappen, dass ich damit nun den doublewert auslesen kann.
Dachte, ich kann das so:
WertneuAusgelesen = (double)Wert001;

oder so lösen:
WertneuAusgelesen = StrToDouble(Wert001);

Geht aber alles nicht. Weiß da jemand Rat?


freitag 09.05.16 14:18

Ok - anbei ein Beispiel, bei dem der testwert 5600 werden sollte:

extern double Wert001 = 5600;
extern double Wert002 = 0;
extern double Wert003 = 0;

double testwert;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---

//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{


int numb=0;
for(int z=1;z<=3;z++){ numb++;
string stringLineX = "Wert00"+string(numb);
double LineX = StrToDouble(stringLineX);
if(numb==1) testwert=LineX;
}


Comment(
"\n testwert ", testwert
);
}

Hosch 09.05.16 15:31

Sali,

das hier würde noch gehen:
string stringLineX = "Wert00"+string(numb); // Du musst numb++ machen sonst bleibt der immer 0.

damit würdest du den Wert im String haben:

"Wert001"
"Wert002"
"Wert003" etc...


Aber mit StrToDouble würdest du nur 0 erhalten, weil der String-Wert im Parameter stringLineX kein DoubleWert beinhaltet sondern ein alphanumerischen Wert.

Ich weiss, was du im Grunde vorhast. Aber das funktioniert nur mit Reflection, aber soweit ich weiss, kennt MQL4 ein solches Konzept nicht. Oder ich kenne das nicht.
https://de.wikipedia.org/wiki/Reflex...grammierung%29

Und warum machst du das so kompliziert. Du hast doch die externe Parameter und warum greifst du nicht direkt auf die externen Parameter zu? Oder definierst einen Array wo du Zahlwerte hast und greifst mit einer Schleife darauf zu?

Gruss,
Hosch

freitag 09.05.16 16:25

Hallo Hosch,
die Schleife brauch ich, weil das 60 Werte sind und ich nicht 60x Einzelschritte kopieren will.
Der Tipp mit der Array bringt mich aber auf gute Gedanken. Ich glaube, damit kann ichs lösen.
Vielen Dank
Stefan


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:03 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum