Discussão do artigo "Encontrando erros e registrando"

 

Novo artigo Encontrando erros e registrando foi publicado:

O MetaEditor 5 possui o recurso de depuração Mas, quando você escreve seus programas MQL5, geralmente você deseja exibir não apenas valores individuais, mas todas as mensagens que aparecem durante o trabalho online e teste. Quando o conteúdo do arquivo de registro tem um tamanho grande, é óbvio automatizar a recuperação rápida e fácil da mensagem requerida. Neste artigo consideraremos várias maneiras de encontrar erros em programas do MQL5 e métodos de registro. Além disso, simplificaremos o logging em arquivos e conheceremos um programa simples LogMon para visualizações confortáveis dos registros.

Pesquisa LogMon

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

 

Obrigado pelo artigo. Há muito tempo eu queria criar algo assim, mas não consegui. E agora... Já estou usando.

 
papaklass:

Também gostei do artigo, obrigado. Porque o MT imprime com saltos e isso é muito inconveniente.

Os saltos estão apenas na guia "Experts". Todas as mensagens estão no arquivo de registro.
 

Eu estava mais interessado nisso ou em coisas semelhantes:

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

Obrigado pelo código, nós o usaremos....

 
Lizar:

Obrigado pelo artigo. Há muito tempo eu queria criar algo assim, mas não consegui. E agora... Já estou usando.

Você está convidado a usá-lo! :)
À medida que o utilizarem, aprimorarei a aula e o programa, pois escrevi primeiro para mim mesmo e, depois, o artigo veio à mente))))
 

Material muito útil!

 

O .exe anexado ainda está no idioma russo. Você pode atualizá-lo?

P.S. Isso é realmente útil! Uma das primeiras classes que devem ser declaradas em qualquer projeto OOP é a que trata de erros!

 
Obrigado por seu comentário. Agora você pode encontrar a versão correta em inglês desse utilitário nos arquivos anexos.
 

Se você esquecer de usar o flush, poderá ocorrer perda de dados.

Uma solução melhor seria a seguinte:


private:
   void              flush(void);              // Descarregamento do cache no arquivo
//+------------------------------------------------------------------+
//| Desinicialização|
//+------------------------------------------------------------------+
void CLogger::deinit(void)
  {
   flush();  // Liberar dados
   FileClose(handleFile); // Fechar arquivo
  }

Para que os dados sejam salvos automaticamente.

ps.: Desculpe-me se ofendi a ortografia, o tradutor do Google me ajudou...

 

Dmitry Alexandrovich, obrigado por seu trabalho, eu estava procurando por algo assim há muito tempo e finalmente encontrei ))

Sugestão para aprimorar o logmon.exe: criar uma configuração que permita especificar os caminhos para procurar arquivos com registros, pois ter duas cópias em pastas diferentes (para o testador e para o trabalho padrão) é, de certa forma, amadorismo ))

embora talvez eu mesmo o termine quando colocar as mãos nele ))

se tiver mais alguma coisa útil, publique-a, pois seu estilo de programação e apresentação do material é muito estúpido )).

 

Recebo um erro ao depurar dados históricos: "MQL5 debugger failed to start debugging 'testlogger.ex5' on history". Em dados reais, ele funciona bem.

Você pode me dizer o que preciso ajustar para que funcione no histórico?