文章 "查找错误和记录"

 

新文章 查找错误和记录已发布:

MetaEditor 5 具备调试功能。但是在编写 MQL5 程序时,您通常都希望不要显示个别的值,而是测试与在线工作期间出现的所有信息。如果日志文件内容庞大,所需信息快速便捷检索自动化的重要性就显而易见了。本文中,我们会研究 MQL5 程序中查找错误的方式以及记录方法。我们也会简单地记录到文件中,并了解一款方便日志查看的简单程序 - LogMon。

作者:Дмитрий Александрович

 

感谢您的文章。很长时间以来,我一直想创作这样的作品,但苦于无从下手。现在...我已经在用了。

 
papaklass:

我也很喜欢这篇文章,谢谢。因为 MT 打印时会跳过,非常不方便。

跳转只出现在 "专家 "选项卡中。所有信息都在日志文件中。
 

我更喜欢这个或类似的东西:

void PrintDebugInfo(string InputString)
{
  CopyTime(Symbol(),Period(),0,1,Time);
  ArraySetAsSeries(Time,true);
  FileWrite(FileHandle,Time[0],"   ",InputString);
}

感谢您提供的代码,我们将使用它....

 
Lizar:

感谢您的文章。很长时间以来,我一直想创作这样的作品,但苦于无从下手。现在...我已经在用了。

欢迎使用!:)
在你们使用它的过程中,我会改进课堂和程序,因为我首先是为自己写的,然后才想到这篇文章))))。
 

非常有用的材料!

 

所附 .exe 文件仍为俄语。您能重新升级一下吗?

附注:这真的很有用!在任何 OOP项目 中,首先要声明的类之一就是处理错误的类!

 
感谢您的评论。现在您可以在附件中找到该实用程序的正确英文版本。
 

如果忘记使用 "刷新 "功能,可能会导致数据丢失。

更好的解决方案如下:


private:
   void              flush(void);              // 将缓存刷新到文件中
//+------------------------------------------------------------------+
//| 退出初始化|
//+------------------------------------------------------------------+
void CLogger::deinit(void)
  {
   flush();  // 清除数据
   FileClose(handleFile); // 关闭文件
  }

自动保存数据。

ps..:对不起,如果我在拼写上冒犯了您,谷歌翻译器帮了我大忙...

 

Dmitry Alexandrovich,感谢您的工作,我一直在寻找这样的东西,终于找到了。)

建议改进 logmon.exe,做一个设置,能够指定查找日志文件的路径,因为在不同的文件夹中有两份副本(用于测试和标准工作)多少有些业余 ))

不过,也许等我拿到手后会自己完成它 ))

如果你还有其他有用的东西--贴出来吧,你的编程风格和材料表达方式很让人头疼 ))。

 

在对历史数据进行调试时,我遇到一个错误:"MQL5 调试器 在历史数据上调试 'testlogger.ex5' 失败"。而在真实数据上运行正常。

请问我需要调整什么才能使它在历史数据上正常工作?