ライブラリ: マルチテスター - ページ 57

 

ヒントをどうもありがとう!

なんとかロボットにエントリーできたのですが、曲がってしまいました。

何度も申し訳ないのですが、私自身状況を理解することができません。

あなたの関数を使ってスクリプトを書きました。これは__SETフォルダ 最初のセットを見つけ、その名前を214-10000 HEX-449.setと正しく定義します(その中でprHEX=true)

そしてコマンドが実行される:

Print (first_set_filename);

Print ("Load: " + (string)FileLoad(first_set_filename, Words,0)); // 読み込んだ ファイルの 長さ 表示 FileName FILE_COMMON

設定 =ShortArrayToString(Words, 1); // 1 - Unicode

Print ("¦設定¦", 設定);

Print (MTTESTER::SetSettings(Settings));

印刷された Settingsファイル は全く異なっています(prWPR=trueとなっています)。どこから来たのか理解できません。つまり、ロードはうまくいったのです!問題の半分は解決しましたが、セットはまだ間違っています。

Qwen 、記録されているセットをtesterfilesに入れるように言われた

僕はそうした。でも、それは役に立たなかった。 first_set_filenameで検索して見つかったセットではなく、なぜか別のセットが Settingsに 記録されて いる:

214-10000 HEX-449.set。

以前の実行でメモリーのどこかに残っていたのだろう。

この理由を理解するのを助けてください。

ありがとう、アレクサンダー

 
klycko #:

Print("Load: " + (string)FileLoad(first_set_filename, Words,0)); // 読み込んだファイルの長さを表示 FileName FILE_COMMON

FileLoad(first_set_filename, Words, FILE_COMMON)
 

Print("Load: " + (string)FileLoad(first_set_filename, Words,FILE_COMMON)); // 読み込んだファイルの長さを表示 FileName FILE_COMMON


この変更により、次のように表示される: Load: -1


 

この行でパラメータを変更した場合:

FILE_COMMON Load 時:-1 設定は 印刷されない。

0ロード3556設定が 正しくない(異なる、どこからかは不明)

 
fxsaber FILE_COMMON)); // 読み込んだファイルの長さを表示 FileName FILE_COMMON.

この行のパラメータを変更した場合:

FILE_COMMON ロード 時:-1 設定は プリントされません。

0ロード3556設定は 正しくない (異なる、どこからかは不明)

 
klycko #:

その理由を教えてください。

上記に加えて

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


デバッグの使い方を学ぶ必要があります。すぐに理由がわかるはずです。

 
fxsaber #:
デバッグの使い方を学ぶ必要がある。すぐに原因がわかるはずだ。

修正したコードを送ってくれてありがとう。

あなたの言う通り、私のスキルを向上させ、デバッグを学ぶことを勧める。とはいえ、使わなくても、もちろん1分では無理ですが、2-3時間かけて、 お勧めの関数を使って デバッグ・スクリプト SetLoad を書きました 。その助けを借りて、エラーが発生するのは次の行の後だとわかりました

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

この行の最後のパラメータを変更すると、次のようになります:

FILE_COMMON Load: -1 設定は プリントさ れません

0ロード時3556 設定は正しくない(異なる、どこから来たのか不明)。

現在 Load処理を調査中 なので この行の直後に returnでスクリプトを中断して いる:

Print (MTTESTER::SetSettings(Settings));


修正された行が送られてきました:

Print("保存: " + (FileSave(source_path, Words, FILE_COMMON) ?(string)ArraySize(Words) :"エラー"));

これをスクリプトに入れてコンパイルした。

しかし、これは ロード処理ではなく、 セーブ処理を 参照するもの で、ロードのエラーには何の効果もありません

 
klycko #:

その結果、まだ余計な設定が残っている。

1回 目と2回目の 編集で、うまくいくようになりました。

 
fxsaber #:

1回 目と2回目の 編集。

すごいね!

私は1年前から Nocturne1スクリプトを使っている

そこでは MTTESTER::SetSettings(Settings)コマンドが何千回も実行されます。

しかし新しいスクリプトでは、このコマンドを使って Settings をロボットに 書き込むことができません。 ここでは SetLoad.Settings( Settings)コマンドの この行で

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

単にむむむが理解できない!!!

設定が入っているフォルダをサンドボックスに移動した。MQL5Files___SET

今、最初のセットは一貫してそこで見つかり、 セッティングにロードされる

FileLoadとGetKthFileContentによる2つの可能な方法でも。

ロード後、 Settingsの正しい内容がプリントされる

しかし、このセットはロボットにロードされません!

なぜ SetLoad コマンドが失敗する のか理解できません:

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

はtrueを返しますが 、ロボットの設定は変更されません。

MTTESTERの最新版を持っていないのかもしれません

このコマンドが正しく動作するよう、ご教授ください:

MTTESTER::SetSettings(Settings)

 
klycko #:

コマンド:MTTESTER::SetSettings(Settings)が正しく動作するようにしてください。

このスクリプトは 動作しますか?