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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3739
Beiträge: 36561
Benutzer: 5.889
Aktive Benutzer: 518
Links: 80
Wir begrüßen unseren neuesten Benutzer: Jensemann
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einem Tag
- Jensemann
vor einem Tag
- Dimi87
vor einem Tag
- harlei60
vor 2 Tagen
- marli
vor 2 Tagen
- crisc

Onlineuser
'Wer ist online' anzeigen Benutzer: 7
Gäste: 56
Gesamt: 63
Team: 0
Team:  
Benutzer:  Dennis605, Falke29, fxnoob, Gunharrr, Jensemann, next user, Stier
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 24.05.17
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 279
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)
__________________
Das Gras wächst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #2 (permalink)  
Alt 26.05.17
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 279
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
__________________
Das Gras wächst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #3 (permalink)  
Alt 26.05.17
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 279
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Zu früh gefreut
Der Beispielcode funktioniert nicht
__________________
Das Gras wächst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #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ß
Mit Zitat antworten
  #5 (permalink)  
Alt 26.05.17
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 279
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
__________________
Das Gras wächst nicht schneller wenn man daran zieht
Mit Zitat antworten
  #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...
Mit Zitat antworten
  #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.
Mit Zitat antworten
  #8 (permalink)  
Alt 27.05.17
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 279
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.
__________________
Das Gras wächst nicht schneller wenn man daran zieht
Mit Zitat antworten
Antwort

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 +2. Es ist jetzt 19:31 Uhr.



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