|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
GlobalVariables nicht alle gelöscht
Ich verstehe die Welt nicht mehr. Ich versuche ein Set von GlobalVariablen zu löschen, der MT macht aber was er grad mal so als lustig empfindet.
Code:
// string PFX="OSCVolDir"; // string GPFX=PFX+"_"+_Symbol+"_"; void DeleteGlobals() { ResetLastError(); Print(" total Glob vars=",IntegerToString( GlobalVariablesTotal() ), " StringLen(",GPFX,")=",IntegerToString( StringLen(GPFX) ) ); for(int i=0; i<GlobalVariablesTotal(); i++ ) { string glob_name=GlobalVariableName(i); if(StringSubstr(glob_name,0,StringLen(GPFX))==GPFX) { Print(" i=",IntegerToString(i), " GlobalVariableName=",GlobalVariableName(i) ); if( GlobalVariableDel(GlobalVariableName(i)) ) Print(" i=",IntegerToString(i)," deleted: ",GlobalVariableName(i)); else Print(" i=",IntegerToString(i)," delete error, code: ",IntegerToString(_LastError)); } } } In der GlobVarList sieht man, daß alle Globals gesetzt wurden, 18 Stück. In der GlobVarDels wurde die Anzahl richtig erkannt, aber der Durchlauf in der Schleife ist nicht korrekt - dabei sind die Klammern doch eindeutig. Meiner Meinung nach ist der Code korrekt - oder bin ich etwa schon wieder an allem Schuld ?? Hat jemand einen Kommentar dazu, dann bitte her damit AVT |
|
|||
Probiere es mal mit
if(StringSubstr(glob_name,0,StringLen(GPFX)-1)==GPFX) traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Der Substring ist ja genau 17 Zeichen lang (hab ich auch noch mal manuell nachgezählt) - und wenn ich von 0 beginnend 17 Zeichen haben will (die den GPFX ergeben müssen), dann ist das letzte Zeichen zwar an Position 16 (wegen der Null), aber ich will damit ja nicht weiter arbeiten, sondern nur wissen ob die Buchstabenfolge stimmt, damit ich löschen kann. Wenn ich die Länge, wie Du vorgeschlagen hast auf 16 kürze, dann entsprechen diese 16 Zeichen nicht mehr dem GPFX (denn der ist 17 lang und somit == nicht erfüllt). Der Test zeigt, daß alle Variablen noch vorhanden sind. Aber nochmal danke, daß Du Dir die Zeit genommen hast. AVT |
|
||||
Zitat:
|
|
|||
Zitat:
Zitat:
|
|
|||
So schnell bin ich nicht
|
Lesezeichen |
|
|