错误、漏洞、问题 - 页 1996

 
Slava:
谁在阻止它?

MQL5不允许这样做。

 
fxsaber:

MQL5不允许这样做。

谁说的。"它不"?比如说,可以这样试一下

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

谁说的。"不允许"?例如,可以试试这个

你应该自己试试。它不允许。

 
fxsaber:

你应该自己试试。不允许这样做。

又试了一次(如果呢?)

它确实

 
Slava:

又试了一次(如果呢?)

允许

你似乎没有1653年的建筑。

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


结果

false
1653
 
fxsaber:

我想知道这样做是否正确,因为它产生了非常难以检测的错误。

程序不能正常工作这一事实本身就很难被抓住。然后为了找出原因,你必须重现这个错误,这也同样困难。然后你不得不在巨大的代码中挖掘一些变量的初始化不完整的地方--太可怕了。警告在这方面有很大的帮助。但只是简单的情况。诸如不对整个数组进行初始化的情况,在编译阶段检查是不现实的。

也许你的想法是别的,但在这个特定的案例中,程序员的微不足道的不注意导致了这个错误。

你不会因为一串几米长的警告而感到烦躁吗?

 
fxsaber:

你似乎没有1653年的建筑。


结果

显然,MyPreferredTemplates文件夹丢失了。而且保存时没有创建文件夹。从路径中删除了该文件夹,结果是这样的。

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

显然,MyPreferredTemplates文件夹丢失了。而当我保存它时,它并没有创建一个文件夹。从路径中删除了该文件夹,结果是这样的。

谢谢,我没有猜到!现在开始工作了。在此之前,我试过"...\\...\Files\\template.tpl" - 它没有以同样的方式工作。Files前面的斜线意味着什么?"\\Files\template.tpl "可以工作?我怎么会猜到呢?

 
fxsaber:

你似乎没有1653年的建筑。


结果

自1565年以来一直在工作。截至2017年3月。

GetLastError 返回什么?

 
fxsaber:

谢谢,我没有猜到!现在开始工作了。在此之前,我试过"...\\...\Files\\template.tpl" - 它没有以同样的方式工作。Files前面的斜线意味着什么?"\\Files\template.tpl "可以工作?我怎么会猜到呢?

文件名开头的斜杠意味着 "来自MQL5的根"。