程序库: 多功能测试仪 - 页 57

非常感谢你的建议!

我设法在机器人中输入了一个条目,但它是歪的。

很抱歉再次向您致歉,但我自己也搞不清楚状况。

我用您的函数编写了一个脚本。它在___SET文件夹 中找到了第一个程序集,并正确地定义了它的名称 214-10000 HEX-449.set(其中 prHEX= true) 。

然后执行命令:

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);

Print (MTTESTER::SetSettings(Settings));

打印出来的 设置文件 完全不同(prWPR=true)。我不知道它是从哪里来的。而且它还加载到了机器人中,也就是说,加载成功了!!!问题解决了一半,但设置仍然是错误的。

Qwen 告诉我把正在记录的程序集放到测试器文件里 。

我照做了。但没用。 由于某种原因 , "设置 "中 记录的是其他数据集,而不是搜索 first_set_filename 时找到的数据集 :

214-10000 HEX-449.set。

它一定是以前运行时留在内存中的。

请帮我找出原因。

亚历山大

klycko #:

Print("Load: " + (string)FileLoad(first_set_filename, Words,0)); // 打印读取文件的长度 文件名 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 加载 时 :-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 #:
你需要学习如何使用调试器。你马上就会知道原因所在。

谢谢你把更正后的代码行发给我。

你建议我提高技能并学习调试是对的。尽管如此,即使没有使用它,当然也不是在一分钟内,而是在两三个小时内,我 使用您推荐的函数 写了一个调试脚本 SetLoad ,在它的帮助下,我发现错误发生在这一行之后 :

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

如果更改这一行中的最后一个参数,那么:

当FILE_COMMON 加载时:-1 设置 不打印

在 0 时加载:3556 设置不正确(不同,不清楚从何而来)。

我目前正在研究 加载过程 ,因此我在 这一行后立即 用 return 中断了脚本 :

Print (MTTESTER::SetSettings(Settings));


现在你给我发来了正确的一行:

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

我将其放入脚本并进行了编译。

但它指的不是 加载过程 ,而是 保存过程 ,而且对加载 设置的 错误没有任何影响, 结果还是出现了无关的设置。

klycko #:

因此,仍有一些不相干的设置。

第一次 和第二次 编辑后,我就能正常工作了。

fxsaber #:

第一次 和第二次 编辑--对我来说很有效。

太神奇了!

我使用 Nocturne1脚本已经一年了 。

在这个 脚本中, MTTESTER::SetSettings(设置) 命令 被执行了数千次。

但在新脚本中,我无法使用该命令将 设置 写入 机器人。在 SetLoad 的 这一行中

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

简直莫名其妙!!!!

我把包含设置的文件夹移到了沙盒中。MQL5\Files\___SET

现在,第一个文件集始终能在那里找到并加载到 " 设置 "中。

即使是通过 FileLoad 和 GetKthFileContent 这两种可能的方式。

加载后,会打印出正确的 设置内容 。

但这一组内容并没有加载到机器人中!

我不明白为什么 SetLoad 命令会失败 :

MTTESTER::SetSettings(设置) 和 MTTESTER:: SetSettings2(Settings)

虽然 返回值为 "true",但机器人设置并未更改。

也许我没有使用最新版本的 MTTESTER ?

请帮助我使命令正常工作:

MTTESTER::SetSettings(Settings)

klycko #:

请帮助我使 MTTESTER::SetSettings(Settings) 命令正常工作。

这个脚本 可以工作吗?