Fehler, Irrtümer, Fragen - Seite 1996

 
Slava:
Wer hält sie auf?

MQL5 erlaubt dies nicht.

 
fxsaber:

MQL5 erlaubt dies nicht.

Wer sagte das? "Das tut es nicht"? Versuchen Sie zum Beispiel Folgendes

ChartSaveTemplate(chart_id,"\\Files\\MyPreferredTemplates\\cewl.tpl");
 
Slava:

Wer sagte das? "Erlaubt es nicht"? Versuchen Sie zum Beispiel Folgendes

Versuchen Sie es doch selbst. Das ist nicht erlaubt.

 
fxsaber:

Versuchen Sie es doch selbst. Erlaubt es nicht.

Erneut versucht (was wäre wenn?).

Das tut sie

 
Slava:

Erneut versucht (was wäre wenn?).

Ermöglicht

Sie scheinen keinen 1653er Build zu haben.

void OnStart()
{
  Print(ChartSaveTemplate(0, "\\Files\\MyPreferredTemplates\\cewl.tpl"));
  Print(TerminalInfoInteger(TERMINAL_BUILD));
}


Ergebnis

false
1653
 
fxsaber:

Ich habe mich gefragt, ob dies das Richtige ist, da es zu solch schwer zu erkennenden Fehlern führt.

Allein die Tatsache, dass das Programm nicht richtig funktioniert, ist extrem schwer zu erkennen. Um die Ursache herauszufinden, müssen Sie den Fehler reproduzieren, was ebenso schwierig ist. Und dann muss man sich durch einen riesigen Code wühlen, in dem die Initialisierung einer Variablen unvollständig ist - schrecklich. Warnhinweise sind dabei sehr hilfreich. Aber nur in einfachen Fällen. Solche Fälle, wie die Initialisierung nicht für das gesamte Array, sind in der Kompilierungsphase unrealistisch zu überprüfen.

Vielleicht denken Sie an etwas anderes, aber in diesem speziellen Fall führte die triviale Unaufmerksamkeit des Programmierers zu diesem Fehler.

Würden Sie sich nicht über eine mehrere Meter lange Reihe von Warnungen ärgern?

 
fxsaber:

Sie scheinen keinen 1653er Build zu haben.


Ergebnis

Offenbar fehlt der Ordner MyPreferredTemplates. Und der Ordner wird beim Speichern nicht erstellt. Ich habe den Ordner aus dem Pfad entfernt, und das ist das Ergebnis.

2017.09.11 14:59:51.538 00 (EURUSD,H1)  true
2017.09.11 14:59:52.328 00 (EURUSD,H1)  1653
 
Alexey Viktorov:

Offenbar fehlt der Ordner MyPreferredTemplates. Und wenn ich sie speichere, wird kein Ordner erstellt. Ich habe den Ordner aus dem Pfad entfernt, und das ist das Ergebnis.

Danke, das hätte ich nicht gedacht! Es funktioniert jetzt. Davor habe ich "..\\..\\Files\\\template.tpl" ausprobiert - es hat nicht auf die gleiche Weise funktioniert. Was bedeutet der Schrägstrich vor Files, dass"\\\Files\\\template.tpl" funktioniert? Wie hätte ich das ahnen können?

 
fxsaber:

Sie scheinen keinen 1653er Build zu haben.


Ergebnis

Funktioniert seit Build 1565. Stand: März 2017.

Was gibtGetLastError zurück?

 
fxsaber:

Danke, das hätte ich nicht gedacht! Es funktioniert jetzt. Davor habe ich "..\\..\\Files\\\template.tpl" ausprobiert - es hat nicht auf die gleiche Weise funktioniert. Was bedeutet der Schrägstrich vor Files, dass"\\\Files\\\template.tpl" funktioniert? Wie hätte ich das ahnen können?

Der Schrägstrich am Anfang des Dateinamens bedeutet "aus dem Stammverzeichnis von MQL5".