ライブラリ: マルチテスター - ページ 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)が正しく動作するようにしてください。

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