错误、漏洞、问题 - 页 327 1...320321322323324325326327328329330331332333334...3184 新评论 DenisR 2011.03.07 07:58 #3261 mrProF: 一目了然,整个文件被写 到str... 添加FILE_ANSI标志,因为它默认读取的是unicode:) 另外,我将是15岁,因为最后有一个空行。 根据MQL5文档,FileReadString函数 "以文件指针的当前位置从文件中读取字符串 ...当从csv-文件中读取时,字符串将从当前位置读到最近的分隔符,或读到文本字符串的结束符号"。因此,我不同意 "整个文件被写入 "的说法。我试着用FILE_ANSI,但它不起作用。关于最后的空行:我不太明白,请解释一下你说的是哪一行。 Дмитрий Александрович 2011.03.07 08:05 #3262 DenisR: 根据MQL5文档,FileReadString函数 "从文件指针的当前位置读取一个字符串。当从csv-文件中读取时,字符串将从当前位置读到最近的分隔符,或读到文本字符串的结束符号"。因此,我不同意 "整个文件被写入 "的说法。我试着用FILE_ANSI,但它不起作用。关于最后的空字符串:我不太明白,请澄清你说的是哪个字符串。 这是如果它能正确找到一个逗号,如果编码不匹配,它可能看不到。 我会用调试器看一下的。 我复制了你的代码,添加了标志--一切都很好。 Дмитрий Александрович 2011.03.07 08:13 #3263 因此,正如我所说,这里是结果。 没有ansi,它就会读出abracadabra,没有看到逗号,它就会飞到文件的末端。 使用安氏,读数很好。 见附件。 附加的文件: 07x03.jpg 194 kb 07u03_file_ansi.jpg 205 kb 07203_empty_line.jpg 158 kb Alexey Da 2011.03.07 08:15 #3264 -Alexey-: 在MetaEditor中,"文件中的函数列表 "按钮可以打开该列表。如果我向下滚动,它在P处结束,不再进一步移动(朝下的黑色三角形变得不活跃),尽管有类到字母R。请修复它。需要更多的细节。建立、归档、决议...刚刚在ChartObject.mqh文件上试了一下--它可以上下滚动。 DenisR 2011.03.07 08:23 #3265 mrProF: 因此,正如我所说,这里是结果。 没有ansi,它就会读出abracadabra,没有看到逗号,它就会飞到文件的末端。 使用安氏,读数很好。 见附件。 从ANSI中我读到了(5 505 1009),也就是说,由于某种原因,i现在是5而不是0,文件大小 和以前一样是505,FileTell和以前一样是1009。在MT4中,同样的脚本为(15 505 505)。 [删除] 2011.03.07 08:29 #3266 alexvd:需要更多细节。建立、归档、决议...刚刚在ChartObject.mqh文件上试了一下--它可以上下滚动。Interesting: 而且至少有近似的清单大小什么?也许名单的大小是有限制的...... -Aleksey-正好100行。 有趣的 是。 用我的一个库(110个函数)做了实验,它在列表中显示从100到106(一直是不同的数字,但不是110)。最后建立,似乎是行数大于100的问题。ChartObject.mqh的列表中只有62行。分辨率1680x1050。Windows7,字体方案是放大的字体。 Дмитрий Александрович 2011.03.07 08:31 #3267 DenisR: 从ANSI中我读到了(5 505 1009),也就是说,由于某种原因,i现在是5而不是0,文件大小和以前一样是505,FileTell和以前一样是1009。在MT4中,同样的脚本为(15 505 505)。 嗯,我的是155091009。//+------------------------------------------------------------------+ //| test.mq5 | //| mrProF | //| http:// | //+------------------------------------------------------------------+ #property copyright "mrProF" #property link "http://" #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() {int handle; ulong i, size; double _Ask, _Bid; string str; handle = FileOpen("test.csv",FILE_CSV|FILE_READ|FILE_ANSI,','); 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; } //+------------------------------------------------------------------+ 如果你知道怎么做,可以尝试逐行调试... DenisR 2011.03.07 08:39 #3268 mrProF: 嗯,我有155091009。 我一开始也有15 505 1009,但后来终端更新到最新版本(408),就变成了5 505 1009。但在任何情况下,文件末尾的标志不能大于文件本身的大小。这是我目前最关心的问题。 [删除] 2011.03.07 08:47 #3269 alexvd:需要更多的细节。建立、归档、决议...刚刚在ChartObject.mqh文件上试了一下--上下滚动。构建404和408,Win XP Prof SP3,3.0 GHz CPU和3.0 Gb RAM。字体大小 和其他设置(颜色除外)是标准的。行动如下。1.创建一个库或任何其他程序模块。2.生成一组程序和函数,其数量必须超过100。在我的例子中,它是110(我在嘲笑我的迁移库)。更具体地说,功能是110个,模块出来的大小约为3310行。3.编译该模块。4.我们正试图翻阅功能列表。在列表中,我看到了从100到106个函数(每次重新编译的函数数量和组成都不同)。起初显示的是106个函数的名称,然后数量开始减少。同时,所有的110项功能从未出现在清单中。PS另一件奇怪的事--我不知道在第一次编译后有多少个函数(但肯定少于50个)新的函数不再出现在列表中,我不得不做两到三次重新编译。我建议要么改变列表的形成顺序,比如以分组菜单的形式分配各个班级(在单独的列表中显示 "填充 "班级),要么组织一个单独的管理器,就像在Delphi中一样(论坛上已经讨论过这样的请求)。 Alexey Da 2011.03.07 08:47 #3270 -Alexey-:alexvd:需要更多的细节。建立、归档、决议...刚刚在ChartObject.mqh文件上试了一下--它可以上下滚动。 Bild last,似乎是行数大于100的问题。ChartObject.mqh的列表中只有62行。分辨率1680x1050。Windows7,字体方案是放大的字体。是的,复制了它。谢谢,让我们来看看。 1...320321322323324325326327328329330331332333334...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一目了然,整个文件被写 到str...
添加FILE_ANSI标志,因为它默认读取的是unicode:)
另外,我将是15岁,因为最后有一个空行。
根据MQL5文档,FileReadString函数 "从文件指针的当前位置读取一个字符串。当从csv-文件中读取时,字符串将从当前位置读到最近的分隔符,或读到文本字符串的结束符号"。因此,我不同意 "整个文件被写入 "的说法。我试着用FILE_ANSI,但它不起作用。关于最后的空字符串:我不太明白,请澄清你说的是哪个字符串。
我会用调试器看一下的。
我复制了你的代码,添加了标志--一切都很好。
没有ansi,它就会读出abracadabra,没有看到逗号,它就会飞到文件的末端。
使用安氏,读数很好。
见附件。
在MetaEditor中,"文件中的函数列表 "按钮可以打开该列表。如果我向下滚动,它在P处结束,不再进一步移动(朝下的黑色三角形变得不活跃),尽管有类到字母R。请修复它。
需要更多的细节。
建立、归档、决议...
刚刚在ChartObject.mqh文件上试了一下--它可以上下滚动。
因此,正如我所说,这里是结果。
没有ansi,它就会读出abracadabra,没有看到逗号,它就会飞到文件的末端。
使用安氏,读数很好。
见附件。
需要更多细节。
建立、归档、决议...
刚刚在ChartObject.mqh文件上试了一下--它可以上下滚动。
而且至少有近似的清单大小什么?也许名单的大小是有限制的......
-Aleksey-
正好100行。
有趣的 是。
用我的一个库(110个函数)做了实验,它在列表中显示从100到106(一直是不同的数字,但不是110)。
最后建立,似乎是行数大于100的问题。ChartObject.mqh的列表中只有62行。分辨率1680x1050。Windows7,字体方案是放大的字体。
从ANSI中我读到了(5 505 1009),也就是说,由于某种原因,i现在是5而不是0,文件大小和以前一样是505,FileTell和以前一样是1009。在MT4中,同样的脚本为(15 505 505)。
如果你知道怎么做,可以尝试逐行调试...
嗯,我有155091009。
需要更多的细节。
建立、归档、决议...
刚刚在ChartObject.mqh文件上试了一下--上下滚动。
构建404和408,Win XP Prof SP3,3.0 GHz CPU和3.0 Gb RAM。
字体大小 和其他设置(颜色除外)是标准的。
行动如下。
1.创建一个库或任何其他程序模块。
2.生成一组程序和函数,其数量必须超过100。在我的例子中,它是110(我在嘲笑我的迁移库)。
更具体地说,功能是110个,模块出来的大小约为3310行。
3.编译该模块。
4.我们正试图翻阅功能列表。
在列表中,我看到了从100到106个函数(每次重新编译的函数数量和组成都不同)。起初显示的是106个函数的名称,然后数量开始减少。
同时,所有的110项功能从未出现在清单中。
PS
另一件奇怪的事--我不知道在第一次编译后有多少个函数(但肯定少于50个)新的函数不再出现在列表中,我不得不做两到三次重新编译。
我建议要么改变列表的形成顺序,比如以分组菜单的形式分配各个班级(在单独的列表中显示 "填充 "班级),要么组织一个单独的管理器,就像在Delphi中一样(论坛上已经讨论过这样的请求)。
alexvd:
需要更多的细节。
建立、归档、决议...
刚刚在ChartObject.mqh文件上试了一下--它可以上下滚动。
Bild last,似乎是行数大于100的问题。ChartObject.mqh的列表中只有62行。分辨率1680x1050。Windows7,字体方案是放大的字体。
是的,复制了它。
谢谢,让我们来看看。