Bibliotecas: MultiTester - página 57

 

Muito obrigado por suas dicas!

Consegui fazer uma entrada no robô, mas ela estava torta.

Desculpe-me por me dirigir a você novamente, mas eu mesmo não consigo entender a situação.

Escrevi um script com suas funções. Ele encontra o primeiro conjunto na pasta___SET e define corretamente seu nome 214-10000 HEX-449.set (nele prHEX=true) .

Em seguida, os comandos são executados:

Print (first_set_filename);

Print ("Load: " + (string)FileLoad(first_set_filename, Words,0)); // Print length ofthe read file FileName FILE_COMMON

Settings = ShortArrayToString(Words, 1); // 1 - Unicode

Print ("\nSettings \n", Settings);

Imprimir (MTTESTER::SetSettings(Settings));

O arquivo de configuraçõesimpresso é completamente diferente (ele tem prWPR=true). Não consigo entender de onde ele veio. E ele também foi carregado no robô, ou seja, o carregamento funcionou!!!, metade do problema foi resolvido, mas a configuração ainda está errada.

Qwen me disse para colocar o conjunto que estava sendo gravado nos arquivos de teste .

Eu fiz isso. Mas isso não ajudou. Por algum motivo, outro conjunto está registrado em Settings, não o que foi encontrado ao pesquisar first_set_filename :

214-10000 HEX-449.set.

Ele deve ter sido deixado em algum lugar na memória de execuções anteriores.

Por favor, ajude-me a entender o motivo disso.

Atenciosamente, Alexander

 
klycko #:

Print("Load: " + (string)FileLoad(first_set_filename, Words,0)); // Imprime o tamanho do arquivo lido FileName FILE_COMMON

FileLoad(first_set_filename, Words, FILE_COMMON)
 

Print("Load: " + (string)FileLoad(first_set_filename, Words,FILE_COMMON)); // Imprime o tamanho do arquivo lido FileName FILE_COMMON


Com essa alteração, ele imprime: Load: -1


 

Se você alterar um parâmetro nessa linha, então:

Quando FILE_COMMON Load : -1 As configurações não são impressas

Em 0Load: 3556As configurações não estão corretas (diferentes, não está claro de onde )

 
fxsaber FILE_COMMON)); // Imprime o tamanho do arquivo lido FileName FILE_COMMON.

Se você alterar o parâmetro nessa linha, então:

QuandoFILE_COMMON Load : -1 As configurações não sãoimpressas

Em 0Load: 3556As configurações não estão corretas (diferentes, não está claro de onde)

 
klycko #:

Por favor, me ajude a entender o motivo disso.

Além do que foi dito acima.

         Print("Save: " + (FileSave(source_path, Words, FILE_COMMON) ? (string)ArraySize(Words) : "error"));


Você precisa aprender a usar a depuração. Você verá o motivo em um minuto.

 
fxsaber #:
Você precisa aprender a usar a depuração. Você verá a causa em um minuto.

Obrigado por me enviar a linha de código corrigida.

Você está certo ao recomendar que eu aprimore minhas habilidades e aprenda a depurar. No entanto, mesmo sem usá-lo, claro que não em um minuto, mas em 2 a 3 horas, escrevi um script de depuração SetLoad usando as funções que você recomendou e, com a ajuda dele, descobri que o erro ocorre após a linha :

Print("Load: " + (string)FileLoad(first_set_filename, Words,0)) ;

Se você alterar o último parâmetro dessa linha, então:

QuandoFILE_COMMON Load: -1 As configurações não sãoimpressas

Em 0 Load: 3556 As configurações não estão corretas (diferentes, não está claro de onde vieram).

No momento, estou investigando o processo Load, portanto, interrompo o script com return imediatamente após a linha :

Print (MTTESTER::SetSettings(Settings));


Agora você me enviou a linha corrigida:

Print("Save: " + (FileSave(source_path, Words, FILE_COMMON) ? (string)ArraySize(Words) : "error")));

Coloquei isso no script e o compilei.

Mas ele não se refere ao processo de carregamento, mas ao processo de salvamento, e não tem efeito sobre o erro de carregamento de configurações, e ainda há configurações estranhas como resultado.

 
klycko #:

como resultado, ainda há configurações estranhas.

Primeira e segunda edição - e já está funcionando.

 
fxsaber #:

Primeira e segunda edição - e funciona para mim.

Isso é incrível!

Estou usando o script Nocturne1há um ano .

onde o comando MTTESTER::SetSettings(Settings) é executado milhares de vezes.

Mas no novo script não consigo fazer com que as configurações sejam gravadas no robô usando esse comando. Aqui nesta linha em SetLoad:

Print ("\nDid succeed in uploading to robot from FileLoad: ",MTTESTER::SetSettings(Settings));

Simplesmente Mumu é incompreensível!!!

Movi a pasta com os conjuntos para a área restrita.MQL5\Files\___SET

Agora o primeiro conjunto é consistentemente encontrado lá e carregado em Settings.

Mesmo de duas maneiras possíveis, via FileLoad e GetKthFileContent.

Após o carregamento, o conteúdo correto de Settingsé impresso .

Mas esse conjunto não é carregado no robô!

Não consigo entender por que o comando SetLoad falha :

MTTESTER::SetSettings(Settings) e MTTESTER::SetSettings2(Settings)

embora ele retorne verdadeiro, mas as configurações do robô não são alteradas.

Talvez eu não tenha a versão mais recente do MTTESTER?

Por favor, me ajude a fazer com que o comando funcione corretamente:

MTTESTER::SetSettings(Settings)

 
klycko #:

Por favor, ajude-me a fazer com que o comando: MTTESTER::SetSettings(Settings) funcione corretamente

Esse script funciona?