|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Bestimmten Wert aus String auslesen
Guten Tag,
wenn ein String mit mehreren Werten besteht, wie kann man daraus einen bestimmten Wert (zb den 5. Wert in der Reihe des Strings) auslesen und in eine int oder double Variable schreiben? Gruß C$D |
|
|||
wenn es immer der 5 Wert ist, kannst du es einfach mit einer schleife durchjagen und raussuchen.
strtodouble() nimmt das zeichen und formt es als double strtointgr() nimmt das zeichen und formt es als eine ganze zahl die schreibeweise des quellcodes ist nciht ganz korrekt, unter der hilfe siehst du den befehl aber direkt. bsb: string variable[0] = "2.25"; strtodouble(variable[0],2) --> 2.2 // als double strtodouble(variable[0],3) --> 2.25 // als double Lg |
|
|||
Irgendwie ist der Wurm drin:
Code:
string variable = 111+","+222+","+333+","+444+","+555; double test_double = StrToDouble(variable[0],2); int test_int = StrToInteger(variable[0]); Gruß |
|
|||
Da ist ein bißchen viel Quatsch dabei, @Trabo.
Die Lösung sieht u.a. so aus. Code:
int cnt = 0; string str; string wert = ""; string variable = 111+","+222+","+333+","+444+","+555; for (int i = 0; i < StringLen(variable); i++) { str = StringSubstr(variable, i, 1); if (str = ",") cnt++; if (cnt == 4 && str != ",") wert = wert + str; if (cnt == 5) break; } double zahl1 = StrToDouble(wert); int zahl2 = StrToInteger(wert); traderdoc |
|
|||
Danke das funktioniert. Noch eine Frage dazu, wie müsste der Code aussehen damit man alle Werte eines String in einzelne Variablen zerlegt?
Gruß |
|
|||
Für 5 Werte:
Code:
string wert[4]; int cnt = 0; string str; wert[0] = ""; string variable = 111+","+222+","+333+","+444+","+555; for (int i = 0; i < StringLen(variable); i++) { str = StringSubstr(variable, i, 1); if (str == ",") { cnt++; wert[cnt] = ""; continue; } wert[cnt] = wert[cnt] + str; } traderdoc |
|
|||
Du bist echt eine riesen Hilfe. Funktioniert, Klasse danke!
|
|
|||
Zitat:
Guten Tag, wenn man den string wert[4]; nicht als string sondern als double-array haben möchte (sonst gibts bei mir in weiterer Verwendung "different types in comparison") wie muss man das anstellen? Ändere ich einfach string zu double bekomme ich die Fehlermeldung "incompatible types". LG |
|
|||
Code:
double irgendwas[4]; string wert[4]; int cnt = 0; string str; wert[0] = ""; string variable = 111+","+222+","+333+","+444+","+555; for (int i = 0; i < StringLen(variable); i++) { str = StringSubstr(variable, i, 1); if (str == ",") { cnt++; wert[cnt] = ""; continue; } wert[cnt] = wert[cnt] + str; irgendwas[cnt] = StrToDouble(wert[cnt]); } |
|
|||
Danke. Mir ist aufgefallen das so der letzte Wert als 0 ausgegeben wird.
Stelle ich den Wert von "double irgendwas" einen Wert höher ist das Problem gelöst, hab ich durch Probieren rausgefunden. Letzter Wert = 0 Code:
double irgendwas[4]; string wert[4]; Code:
double irgendwas[5]; string wert[4]; |
Lesezeichen |
Stichworte |
mql4, programmierung, programmierung metatrader, string, string auslesen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|