Bibliothèque: MultiTester - page 57

 

Merci beaucoup pour vos conseils !

J'ai réussi à faire une entrée dans le robot, mais elle était de travers.

Je suis désolé de m'adresser à nouveau à vous, mais je n'arrive pas à comprendre la situation moi-même.

J'ai écrit un script avec vos fonctions. Il trouve le premier set dans le dossier___SET et définit correctement son nom 214-10000 HEX-449.set (dans prHEX=true) .

Les commandes sont ensuite exécutées :

Print (nom_du_premier_ensemble) ;

Print ("Load : " + (string)FileLoad(first_set_filename, Words,0)); // Print length dufichier lu FileName FILE_COMMON

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

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

Print (MTTESTER::SetSettings(Settings)) ;

Le fichier Settingsimprimé est complètement différent (il a prWPR=true). Je n'arrive pas à comprendre d'où il vient. Et il a également été chargé dans le robot, c'est-à-dire que le chargement a fonctionné ! !!, la moitié du problème est résolue, mais le set est toujours erroné.

Qwen m'a dit de mettre le set enregistré dans les fichiers du testeur .

C'est ce que j'ai fait. Mais cela n'a pas aidé. Un autre jeu est enregistré dans Settings pour une raison quelconque, pas celui trouvé lors de la recherche de first_set_filename :

214-10000 HEX-449.set.

Il doit avoir été laissé quelque part en mémoire lors d'exécutions précédentes.

Veuillez m'aider à comprendre la raison de ce phénomène.

Cordialement, Alexander

 
klycko #:

Print("Load : " + (string)FileLoad(first_set_filename, Words,0)) ; // Affiche la longueur du fichier lu FileName FILE_COMMON

FileLoad(first_set_filename, Words, FILE_COMMON)
 

Print("Load : " + (string)FileLoad(first_set_filename, Words,FILE_COMMON)) ; // Affiche la longueur du fichier lu FileName FILE_COMMON


Avec cette modification, le message s'imprime : Load : -1


 

Si vous modifiez un paramètre dans cette ligne, alors :

Quand FILE_COMMON Load : -1 Les paramètres ne sont pas imprimés

A 0Load: 3556Paramètres incorrects (différents, sans que l'on sache exactement d'où )

 
fxsaber FILE_COMMON)) ; // Affiche la longueur du fichier lu FileName FILE_COMMON.

Si vous modifiez le paramètre dans cette ligne, alors :

LorsqueFILE_COMMON est chargé : -1Les paramètres ne sont pasimprimés

À 0Chargement: 3556Les paramètres ne sont pas corrects (différents, sans que l'on sache exactement d'où).

 
klycko #:

Veuillez m'aider à en comprendre la raison.

En plus de ce qui précède.

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


Vous devez apprendre à utiliser debug. Vous verrez la raison en une minute.

 
fxsaber #:
Vous devez apprendre à utiliser le débogage. Vous verrez la cause en une minute.

Merci de m'avoir envoyé la ligne de code corrigée.

Vous avez raison de me recommander d'améliorer mes compétences et d'apprendre le débogage. Néanmoins, même sans l'utiliser, bien sûr pas en une minute, mais en 2-3 heures, j'ai écrit un script de débogage SetLoad en utilisant les fonctions que vous avez recommandées, et avec son aide j'ai trouvé que l'erreur se produit après la ligne :

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

Si vous modifiez le dernier paramètre de cette ligne, alors.. :

LorsqueFILE_COMMON Chargement : -1 Les paramètres ne sont pasimprimés

À 0 Chargement : 3556 Les paramètres ne sont pas corrects (différents, on ne sait pas d'où ils viennent).

Je suis en train d'étudier le processus de chargement, c'est pourquoi j'interromps le script avec return immédiatement après la ligne :

Print (MTTESTER::SetSettings(Settings)) ;


Vous m'avez envoyé la ligne corrigée :

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

Je l'ai mis dans le script et je l'ai compilé.

Mais il ne se réfère pas au processus de chargement, mais au processus d'enregistrement et n'a aucun effet sur l'erreur de chargement .

 
klycko #:

il en résulte encore des paramètres superflus.

Première et deuxième modification - et cela fonctionne.

 
fxsaber #:

Première et deuxième édition - et cela fonctionne pour moi.

C'est incroyable !

J'utilise le script Nocturne1depuis un an maintenant .

où la commande MTTESTER::SetSettings(Settings) est exécutée des milliers de fois.

Mais dans le nouveau script, je n'arrive pas à écrire Settings dans le robot à l'aide de cette commande. Ici, dans cette ligne de SetLoad:

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

Simply Mumu est incompréhensible !!!

J'ai déplacé le dossier avec les sets dans le bac à sable.MQL5\Files\___SET

Maintenant, le premier jeu est systématiquement trouvé à cet endroit et chargé dans Settings.

Même de deux manières possibles via FileLoad et GetKthFileContent.

Après le chargement, le contenu correct de Settingsest imprimé .

Mais ce jeu n'est pas chargé dans le robot !

Je ne comprends pas pourquoi la commande SetLoad échoue :

MTTESTER::SetSettings(Settings) et MTTESTER::SetSettings2(Settings)

bien qu'elle renvoie un résultat positif, les paramètres du robot ne sont pas modifiés.

Peut-être n'ai-je pas la dernière version de MTTESTER?

Merci de m'aider à faire fonctionner la commande correctement :

MTTESTER::SetSettings(Settings)

 
klycko #:

Veuillez m'aider à faire fonctionner correctement la commande : MTTESTER::SetSettings(Settings)

Ce script fonctionne-t-il ?