错误、漏洞、问题 - 页 326 1...319320321322323324325326327328329330331332333...3184 新评论 Sergey Gritsay 2011.03.06 14:41 #3251 Urain:在第一个帖子中,你正在进行赋值操作,多个级联赋值是可以接受的。在这里,你正试图做一个多重比较。 我知道如何进行比较,但如果(a<b<c)它可以工作,而且看起来更漂亮,尽管帮助中没有说什么。它是如何更快地工作的? Mykola Demko 2011.03.06 14:53 #3252 sergey1294: 我知道如何进行比较,但如果(a<b<c)它可以工作,而且看起来更漂亮,虽然帮助中没有提到。 但它如何更快工作?你的表达方式等同于这个if(a<(b<c)) 你比较b和c,这个比较的结果将是0或1,然后你将这个结果与a比较。 [删除] 2011.03.06 14:57 #3253 sergey1294: 我知道如何进行比较,但如果(a<b<c)它可以工作,而且看起来更漂亮,尽管帮助中没有说到这一点。 它如何工作得更快?这就是它的工作方式。if(a&&b&&c==3)Alert("a=b=c=3"); if(a<b&&b<c)Alert("a<b<c"); if(a==b)Alert("a=b"); 而这并没有。 if(a<b<c)Alert("a<b<c"); if(a=b=c=3)Alert("a=b=c=3"); if(a==b==c==3)Alert("a=b=c=3"); if(a==b==c)Alert("a=b=c"); //Вот нежелание работать этого примера для меня странно (хотя может так и задумано) Urain。你的表达方式等同于这样 你比较b和c,这个比较的结果将是0或1,然后你将这个结果与a比较。 有了这个逻辑,一切都变得清晰了,但由于某些原因,我认为a和b会先被比较(当然可能是我错了)... Sergey Gritsay 2011.03.06 15:08 #3254 Urain:你的表情和这个人一样。 你比较b和c,这个比较的结果是0或1,然后你把这个结果与a比较。我明白了,但这个表达方式的诀窍是这样的,但它并不奏效void OnStart() { //--- int a=1; int b=2; int c=3; int d=3; //--- if(a!=b<c==d)Alert(""); else Alert("Условие не верно"); //--- } Mykola Demko 2011.03.06 15:09 #3255 Interesting:...只是我认为a和b会先被比较(当然我可能是错的)...... 是的,我只是机械地错了,首先有一个左手的比较,然后是右手的。 [删除] 2011.03.06 15:15 #3256 sergey1294:我明白了,但这个表达方式的诀窍是这样的,但它并不奏效不,只是你必须考虑到行动的优先次序和Urain 的评论。这种表达方式也没有问题,但它的故障非常严重。if(a<b<c)Alert("a<b<c");这个问题在编辑部"优先级和操作顺序 " 一节中有详细描述。(必须考虑到操作的优先级和顺序)。因此,如果我理解正确的话,根据编译器的比较看起来是这样的(考虑到Nikolay的评论)。if((a!=(b<c))==d)Alert("") [删除] 2011.03.06 15:16 #3257 Interesting: 名单的规模大约是多少?也许名单的大小是有限制的... 正好100行。 [删除] 2011.03.06 15:46 #3258 -Alexey-: 正好100行。用我的一个库(110个函数)做了实验,在列表中显示100到106(而且一直是不同的数字,但不是110)。 DenisR 2011.03.06 20:27 #3259 在读取.csv文件时,一下子出现了几个问题。为了试图弄清故障的原因,我写了一个简单的脚本。该脚本从文件 "test.csv "中读取数据。一旦到了文件的末尾,它就把 "for "循环的迭代号、文件大小 和文件指针位置打印到日志中。但这里发生了令人费解的事情,即:文件 "test.csv "只有15行,所以 "for "循环的迭代次数必须是14次,但日志生成的是0。文件的大小被正确打印出来,但由于某种原因,文件结束指针位置的大小比文件本身大。脚本代码。void OnStart() { int handle; ulong i, size; double _Ask, _Bid; string str; handle = FileOpen("test.csv",FILE_CSV|FILE_READ,','); if (handle != INVALID_HANDLE) { size = FileSize(handle); for (i = 0; i < size; i++) { str = FileReadString(handle); _Ask = FileReadNumber(handle); _Bid = FileReadNumber(handle); if (FileIsEnding(handle)) { Print(i," ",size," ",FileTell(handle)); break; } } } FileClose(handle); return; } "test.csv "文件和日志附后。谁对这个问题有什么想法? P.S. 最有趣的是,在MT4中,这个脚本的工作没有错误。 附加的文件: test.zip 1 kb Дмитрий Александрович 2011.03.06 22:39 #3260 DenisR:在读取.csv文件时,一下子出现了几个问题。为了试图弄清故障的原因,我写了一个简单的脚本。该脚本从文件 "test.csv "中读取数据。一旦到了文件的末尾,它就把 "for "迭代的次数、文件大小和文件指针位置打印到日志中。但这里发生了令人费解的事情,即:文件 "test.csv "只有15行,所以 "for "循环的迭代次数必须是14次,但日志生成的是0。文件的大小被正确打印出来,但由于某种原因,文件结束指针位置的大小比文件本身还要大。脚本代码。 "test.csv "文件和日志附后。谁对这个问题有什么想法? P.S. 最有趣的是,在MT4中,这个脚本的工作没有错误。 一目了然,整个文件被写 到str... 添加FILE_ANSI标志,因为它默认读取的是unicode:) 另外,我将是15岁,因为最后有一个空行。 1...319320321322323324325326327328329330331332333...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在第一个帖子中,你正在进行赋值操作,多个级联赋值是可以接受的。在这里,你正试图做一个多重比较。
我知道如何进行比较,但如果(a<b<c)它可以工作,而且看起来更漂亮,虽然帮助中没有提到。 但它如何更快工作?
你的表达方式等同于这个
if(a<(b<c))
你比较b和c,这个比较的结果将是0或1,然后你将这个结果与a比较。我知道如何进行比较,但如果(a<b<c)它可以工作,而且看起来更漂亮,尽管帮助中没有说到这一点。 它如何工作得更快?
这就是它的工作方式。
而这并没有。
你的表达方式等同于这样
你比较b和c,这个比较的结果将是0或1,然后你将这个结果与a比较。你的表情和这个人一样。
你比较b和c,这个比较的结果是0或1,然后你把这个结果与a比较。我明白了,但这个表达方式的诀窍是这样的,但它并不奏效
...只是我认为a和b会先被比较(当然我可能是错的)......
我明白了,但这个表达方式的诀窍是这样的,但它并不奏效
不,只是你必须考虑到行动的优先次序和Urain 的评论。
这种表达方式也没有问题,但它的故障非常严重。
这个问题在编辑部"优先级和操作顺序 " 一节中有详细描述。(必须考虑到操作的优先级和顺序)。
因此,如果我理解正确的话,根据编译器的比较看起来是这样的(考虑到Nikolay的评论)。
名单的规模大约是多少?也许名单的大小是有限制的...
正好100行。
用我的一个库(110个函数)做了实验,在列表中显示100到106(而且一直是不同的数字,但不是110)。
在读取.csv文件时,一下子出现了几个问题。为了试图弄清故障的原因,我写了一个简单的脚本。该脚本从文件 "test.csv "中读取数据。一旦到了文件的末尾,它就把 "for "循环的迭代号、文件大小 和文件指针位置打印到日志中。但这里发生了令人费解的事情,即:文件 "test.csv "只有15行,所以 "for "循环的迭代次数必须是14次,但日志生成的是0。文件的大小被正确打印出来,但由于某种原因,文件结束指针位置的大小比文件本身大。脚本代码。
"test.csv "文件和日志附后。谁对这个问题有什么想法?
P.S. 最有趣的是,在MT4中,这个脚本的工作没有错误。
在读取.csv文件时,一下子出现了几个问题。为了试图弄清故障的原因,我写了一个简单的脚本。该脚本从文件 "test.csv "中读取数据。一旦到了文件的末尾,它就把 "for "迭代的次数、文件大小和文件指针位置打印到日志中。但这里发生了令人费解的事情,即:文件 "test.csv "只有15行,所以 "for "循环的迭代次数必须是14次,但日志生成的是0。文件的大小被正确打印出来,但由于某种原因,文件结束指针位置的大小比文件本身还要大。脚本代码。
"test.csv "文件和日志附后。谁对这个问题有什么想法?
P.S. 最有趣的是,在MT4中,这个脚本的工作没有错误。
添加FILE_ANSI标志,因为它默认读取的是unicode:)
另外,我将是15岁,因为最后有一个空行。