Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 07.06.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Angry 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 dem Logfile MQL4/Logs/JJJJMMDD.log wird auch nichts mehr eingetragen - darum die Meldungen im Anhang.
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
Angehängte Grafiken
Dateityp: jpg GlobVarList.JPG (90,5 KB, 2x aufgerufen)
Dateityp: jpg GlobVarDels.JPG (176,0 KB, 2x aufgerufen)