Librerie: MultiTester - pagina 57

 

Grazie mille per i vostri consigli!

Sono riuscito a fare un inserimento nel robot, ma era storto.

Mi dispiace rivolgermi di nuovo a voi, ma non riesco a capire la situazione da solo.

Ho scritto uno script con le tue funzioni. Trova il primo set nella cartella___SET e ne definisce correttamente il nome 214-10000 HEX-449.set (in esso prHEX=true) .

Quindi vengono eseguiti i comandi:

Print (first_set_filename);

Print ("Load: " + (string)FileLoad(first_set_filename, Words,0)); // Stampa lunghezza del fileletto FileName FILE_COMMON

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

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

Print (MTTESTER::SetSettings(Impostazioni));

Il file delle impostazionistampato è completamente diverso (ha prWPR=true). Non riesco a capire da dove provenga. Inoltre è stato caricato nel robot, cioè il caricamento ha funzionato!!!, metà del problema è stato risolto, ma il set è ancora sbagliato.

Qwen mi ha detto di inserire il set registrato nei file del tester .

L'ho fatto. Ma non è servito. Per qualche motivo nelle Impostazioni viene registrato un altro set, non quello trovato quando si cerca first_set_filename :

214-10000 HEX-449.set.

Deve essere rimasto da qualche parte in memoria da esecuzioni precedenti.

Vi prego di aiutarmi a capire il motivo di questo problema.

Saluti, Alexander

 
klycko #:

Print("Carica: " + (stringa)FileLoad(first_set_filename, Words,0)); // Stampa la lunghezza del file letto FileName FILE_COMMON

FileLoad(first_set_filename, Words, FILE_COMMON)
 

Print("Carica: " + (stringa)FileLoad(first_set_filename, Words,FILE_COMMON)); // Stampa la lunghezza del file letto FileName FILE_COMMON


Con questa modifica viene stampato: Load: -1


 

Se si modifica un parametro in questa riga, allora:

Quando FILE_COMMON Carica : -1 Le impostazioni non vengonostampate su .

A 0Carica: 3556Impostazioni non corrette (diverse, non è chiaro da dove )

 
fxsaber FILE_COMMON)); // Stampa la lunghezza del file letto FileName FILE_COMMON.

Se si modifica il parametro in questa riga, allora:

QuandoFILE_COMMON Carica : -1 Le impostazioni non vengonostampate.

A 0Carico: 3556Le impostazioni non sono corrette (diverse, non è chiaro da dove).

 
klycko #:

Vi prego di aiutarmi a capire il motivo di questa situazione.

Oltre a quanto detto sopra.

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


Dovete imparare a usare il debug. Vedrete il motivo in un minuto.

 
fxsaber #:
Dovete imparare a usare il debug. Vedrai la causa in un minuto.

Grazie per avermi inviato la riga di codice corretta.

Hai ragione nel raccomandarmi di migliorare le mie capacità e di imparare il debug. Tuttavia, anche senza usarlo, ovviamente non in un minuto, ma in 2-3 ore, ho scritto uno script di debug SetLoad usando le funzioni che mi hai consigliato, e con il suo aiuto ho scoperto che l'errore si verifica dopo la riga :

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

Se si modifica l'ultimo parametro di questa riga, allora:

QuandoFILE_COMMON Carica: -1 Le impostazioni non vengonostampate .

A 0 Caricamento: 3556 Le impostazioni non sono corrette (diverse, non è chiaro da dove provengano).

Attualmente sto indagando sul processo di caricamento, quindi interrompo lo script con return subito dopo la riga :

Print (MTTESTER::SetSettings(Settings));


Ora mi avete inviato la riga corretta:

Print("Salva: " + (FileSave(source_path, Words, FILE_COMMON) ? (string)ArraySize(Words) : "errore"));

L'ho inserito nello script e compilato.

Ma non si riferisce al processo di caricamento, ma a quello di salvataggio e non ha alcun effetto sull'errore di caricamento .

 
klycko #:

ci sono ancora impostazioni estranee come risultato.

Prima e seconda modifica - e funziona.

 
fxsaber #:

Prima e seconda modifica - e per me funziona.

È fantastico!

Uso lo script Nocturne1da un anno ormai .

dove il comando MTTESTER::SetSettings(Settings) viene eseguito migliaia di volte.

Ma nel nuovo script non riesco a far sì che le impostazioni vengano scritte sul robot utilizzando questo comando. In questa riga di SetLoad:

Print (" riuscito a caricare sulrobot da FileLoad: ",MTTESTER::SetSettings(Settings));

Semplicemente Mumu è incomprensibile!!!

Ho spostato la cartella con i set nella sandbox.MQL5\Files\___SET

Ora il primo set viene costantemente trovato lì e caricato nelle Impostazioni.

Anche in due modi possibili, tramite FileLoad e GetKthFileContent.

Dopo il caricamento, viene stampato il contenuto corretto di Impostazioni.

Ma questo set non viene caricato nel robot!

Non riesco a capire perché il comando SetLoad fallisca :

MTTESTER::SetSettings(Impostazioni) e MTTESTER::SetSettings2(Impostazioni)

anche se restituisce true, ma le impostazioni del robot non vengono modificate.

Forse non ho l'ultima versione di MTTESTER?

Per favore, aiutatemi a far funzionare correttamente il comando:

MTTESTER::SetSettings(Impostazioni)

 
klycko #:

Per favore aiutatemi a far funzionare correttamente il comando: MTTESTER::SetSettings(Settings)

Questo script funziona?