来自一个 "傻瓜 "的问题 - 页 263 1...256257258259260261262263264265266267268269270...277 新评论 Andrew Petras 2013.07.04 13:14 #2621 Contender: 试着用StringConcatenate()将字符串 "粘 "在一起被取代的是StringConcatenate(nTL,"nTL_",IntegerToString(MathRand())); 并没有帮助。 Vasiliy Smirnov 2013.07.04 13:16 #2622 Silent: 我又要绞尽脑汁想一个星期了。你能给我一些更多的细节吗?(可以是粗糙的:)对于几百个具有独特名称的对象,是否有其他选择?(一组对象的名称中必须有相同部分的字符串,才能删除该组)。 计数器 [删除] 2013.07.04 13:16 #2623 TheXpert:那么,从逻辑上讲,如果该函数根本就设置了最后一个错误,那么在成功完成该函数时,应该有一个零的错误值或文档中描述的值。没有其他办法。也就是说,如果调用成功且错误非零,这种情况应该在文档中描述。 我也是这么想的,直到我被说服了。向SD写了一个请求,我得到了像上面那样的答复:) Vasiliy Smirnov 2013.07.04 13:17 #2624 220Volt:你是否因为Get Last Errors的打印结果不是零而担心?如果是这样,你应该只在函数报告失败的情况下询问错误。而且,你不应该在情节的最后要求出错,你可能会得到一个垃圾值。在MT4中是这样的,也许在这里是不同的。伪代码。 这个错误应该由ResetLastError() 清除,但如果有一个赋值正在进行,则是等价的。 [删除] 2013.07.04 13:18 #2625 Silent: 我的建议是:根据我上面描述的原则,重新做Get LastError的工作。只有这样,你才会得到所发生的错误,也许你会得到其他的东西。 TheXpert 2013.07.04 13:23 #2626 220Volt: 我也这么想,直到我被说服了。我给SD写了一个请求,我得到了和上面一样的答案:) 布拉伊德。 Andrew Petras 2013.07.04 13:24 #2627 复位是在打电话之前复位。这就是导致错误的原因void CreateTL(string name,datetime time1,double price1,datetime time2,double price2,bool ray_left,bool ray_right,color color_TL) { //------------ nTL,nTLh,nTLl,nTLe nTL="nTL_"+IntegerToString(MathRand()); nTLh="nTLh_"+IntegerToString(MathRand()); nTLl="nTLl_"+IntegerToString(MathRand()); nTLe="nTLe_"+IntegerToString(MathRand()); //------------ ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price2); };这个变体没有错误void CreateTL(string name,datetime time1,double price1,datetime time2,double price2,bool ray_left,bool ray_right,color color_TL) { //------------ nTL,nTLh,nTLl,nTLe //nTL="nTL_"+IntegerToString(MathRand()); //nTLh="nTLh_"+IntegerToString(MathRand()); //nTLl="nTLl_"+IntegerToString(MathRand()); //nTLe="nTLe_"+IntegerToString(MathRand()); //------------ ObjectCreate(0,nTL="nTL_"+IntegerToString(MathRand());,OBJ_TREND,0,time1,price1,time2,price2); }; Andrew Petras 2013.07.04 13:28 #2628 zfs: 计数器 这有什么区别? 同样的数字在一个字符串中。 Vasiliy Smirnov 2013.07.04 13:32 #2629 Silent: 这有什么区别呢? 线上的数字是一样的。 不能保证这些数字不会匹配。潜在的错误。 Andrew Petras 2013.07.04 13:36 #2630 zfs: 不能保证数字会不匹配。潜在的错误。首先,没有任何机会(Urain的代码从来没有失败过)x=0; MathSrand(x); for(i=0;i<MathRand();i++)MathRand(); MathSrand((int)TimeLocal()*MathRand());其次,我在第一次调用时就出现了错误(而且没有创建对象)。 Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new www.mql5.com Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5 1...256257258259260261262263264265266267268269270...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
试着用StringConcatenate()将字符串 "粘 "在一起
被取代的是
并没有帮助。我又要绞尽脑汁想一个星期了。你能给我一些更多的细节吗?(可以是粗糙的:)
对于几百个具有独特名称的对象,是否有其他选择?
(一组对象的名称中必须有相同部分的字符串,才能删除该组)。
那么,从逻辑上讲,如果该函数根本就设置了最后一个错误,那么在成功完成该函数时,应该有一个零的错误值或文档中描述的值。没有其他办法。
也就是说,如果调用成功且错误非零,这种情况应该在文档中描述。
你是否因为Get Last Errors的打印结果不是零而担心?如果是这样,你应该只在函数报告失败的情况下询问错误。而且,你不应该在情节的最后要求出错,你可能会得到一个垃圾值。在MT4中是这样的,也许在这里是不同的。
伪代码。
我的建议是:根据我上面描述的原则,重新做Get LastError的工作。只有这样,你才会得到所发生的错误,也许你会得到其他的东西。
我也这么想,直到我被说服了。我给SD写了一个请求,我得到了和上面一样的答案:)
复位是在打电话之前复位。
这就是导致错误的原因
这个变体没有错误
计数器
这有什么区别呢? 线上的数字是一样的。
不能保证数字会不匹配。潜在的错误。
首先,没有任何机会(Urain的代码从来没有失败过)
其次,我在第一次调用时就出现了错误(而且没有创建对象)。