Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 258
Gesamt: 258
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 24.05.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Question Schon wieder ein Dateiproblem, kann jemand helfen?

Ich will feststellen ob ein Template vorhanden ist oder nicht.
Im MQL5 Forum hab ich schon gefragt https://www.mql5.com/de/forum/193218 aber bisher keine Lösung gefunden.
Ich hab's auch mittels Kernel32 versucht https://www.mql5.com/de/articles/1540 aber der Code funktioniert nicht.
Diese 2 Funktionen habe ich dazugefügt:
Code:
bool FileExists(string aFileName)
{
   int handle=_lopen(aFileName,OF_READ);
   if (handle<0)
      return(false);
   else
      {
         _lclose (handle);        
         return(true);
      }
}

bool TemplateExists(string aFileName)
{
   aFileName=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Profiles\\Templates\\"+aFileName+".tpl";
   return(FileExists(aFileName));
}
Ich hänge die FileReadWrite.mqh hier an, ist etwas lesbarer formatiert als das Original.

Vielleicht erbarmt sich ein Spezialist und hilft!

Grüße Otto
Angehängte Dateien
Dateityp: mqh FileReadWrite.mqh (12,5 KB, 5x aufgerufen)
  #2 (permalink)  
Alt 26.05.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Das Problem mit den Templates ist mittlerweile gelöst.
Die Lösung ist unter https://www.mql5.com/de/forum/193218#comment_5107046 zu lesen, falls es jemanden interessiert.

Das zweite Problem mit FileReadWrite.mqh habe ich leider noch nicht gelöst.

Grüße Otto
  #3 (permalink)  
Alt 26.05.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Zu früh gefreut
Der Beispielcode funktioniert nicht
  #4 (permalink)  
Alt 26.05.17
Neues Mitglied
 
Registriert seit: Mar 2017
Beiträge: 27
Collider befindet sich auf einem aufstrebenden Ast
Collider eine Nachricht über Skype™ schicken
Standard

Ist dein Problem in der start() oder in deiner Funktion FileExists(string aFileName) ?

Gruß
  #5 (permalink)  
Alt 26.05.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Dank für dein Interesse!

Mittlerweile habe gefunden wo der Bug wohnt, nämlich in der Funktion ChartApplyTemplate().
Elendslange Kommunikation mit dem Service-Desk. Ich hoffe sie glauben mir diesmal und überprüfen das.

Dieser Code funktioniert prächtig:
Code:
void OnStart()
{
   if(ChartApplyTemplateToAll("my_template"))
      PlaySound("ok");
}

bool ChartApplyTemplateToAll(string aTemplate)                 // checks and loads a template to all charts
{
   long   theChart = ChartFirst();                             // loopvar for all charts
   string fileName =          "Templates\\"+aTemplate+".tpl";  // the filename for FileIsExist
   string tmplName = "\\Files\\Templates\\"+aTemplate+".tpl";  // the templatename for ChartApplyTemplate. may have extension or not

   if(!FileIsExist(fileName))
      return(false);

   while(theChart>=0)
      {
         if(!ChartApplyTemplate(theChart, tmplName))
            return(false);
         theChart=ChartNext(theChart);
      }
   return(true);
}
Und bei diesem Code verabschiedet sich der Debugger im Nirgendwo:
Code:
void OnStart()                                                 // this varian runs the debugger to a crash
{
   string aTemplate="my_template";
   long   theChart = ChartFirst();                             // loopvar for all charts
   string fileName =          "Templates\\"+aTemplate+".tpl";  // the filename for FileIsExist
   string tmplName = "\\Files\\Templates\\"+aTemplate;         // the templatename for ChartApplyTemplate

   if(!FileIsExist(fileName))
      return;

   ChartApplyTemplate(ChartID(),tmplName);                     // debugger crashes here
//   ChartApplyTemplate(0,tmplName);                             // debugger crashes here also, decomment it to proof

   PlaySound("ok");
}
Es hängt offensichtlich mit den Parametern von ChartApplyTemplate zusammen.

Könnte das evtl. jemand testen(überprüfen)? Das muß sowohl unter MT4 als auch MT5 laufen.

Auf alle Fälle habe ich jetzt eine Version die funktioniert.

Grüße

Otto
  #6 (permalink)  
Alt 26.05.17
Neues Mitglied
 
Registriert seit: Mar 2017
Beiträge: 27
Collider befindet sich auf einem aufstrebenden Ast
Collider eine Nachricht über Skype™ schicken
Standard

Ok , das Problem ist dann woanders als im ersten Post.

Im 4er funktioniert der FileExits test. Der gleiche Code im 5er nicht.(oder bei dir doch ?
Hängt sicher mit den Zugriffsrechten zusammen. Im 5er wird das SandBox Konzept noch schärfer umgesetzt.


Ich schaue mal nach deinem Debugger Problem...
  #7 (permalink)  
Alt 26.05.17
Neues Mitglied
 
Registriert seit: Mar 2017
Beiträge: 27
Collider befindet sich auf einem aufstrebenden Ast
Collider eine Nachricht über Skype™ schicken
Standard

Scheint ein richtiger Bug zu sein.

Konnte ich reproduzieren. Gibt man den long von ChartFirst() mit, kein crash.
Gibt man den long von ChartID() mit crasht der Debugger.
  #8 (permalink)  
Alt 27.05.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Dank für Test, bin zum gleichen Ergebnis gekommen. Bug im MT5.
Es sollte aber auch nicht sein, daß der Debugger einfach so abschmiert.
Bin gespannt was der Service-Desk am Montag dazu sagt.
Thema geschlossen

Lesezeichen

Stichworte
dateien, dateiproblem, dateizugriff, files, programmierung, programmierung metatrader, programmierung mql5

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------