文章 "单纯使用 MQL5 语言处理 ZIP 档案" - 页 2 12345678910 新评论 Dmytro Zelenskyy 2017.08.07 12:16 #11 Vasiliy Sokolov:臭名昭著的结构铸造是脏话。将更正后的版本保留在附件中。提示!非常感谢! Stanislav Korotky 2017.08.07 13:23 #12 Vasiliy Sokolov:现在我仔细查看了你的错误--结构铸造的情况相同,但在另一个容器中--CDictionary。将 Include\Dictionary.mqh 替换为下面附带的变体。是的,在 MT4 下一切运行正常,我还要再说一句,CZip 是我在 MT4 上项目的主力。剩下的就是'm_array' - structures containing objects are not allowed Dictionary.mqh 306 25 Vasiliy Sokolov 2017.08.07 14:41 #13 Stanislav Korotky: 剩下的是这个:'m_array' - structures containing objects are not allowed Dictionary.mqh 306 25第 306 行应替换为以下片段:#ifdef __MQL4__ int t_size = ArrayResize(temp_array, ArraySize(m_array)); for(int i = 0; i < t_size; i++) temp_array[i] = m_array[i]; #else ArrayCopy(temp_array, m_array); #endif在 MT4 的附件字典中 附加的文件: Dictionary.mqh 39 kb Stanislav Korotky 2017.08.07 15:04 #14 Vasiliy Sokolov: 第 306 行应替换为该片段:在 MT4 的附件字典中。这样就说得通了。非常感谢。PS.对于归档中的零长度文件,确实会创建一个错误的文件头(在 ZipTask1 示例中),因此无法检索,但这是可以解决的,也许是测试本身的问题。 Vasiliy Sokolov 2017.08.07 15:24 #15 Stanislav Korotky:有道理。非常感谢。PS.对于归档中的零长度文件,确实会创建一个无效的文件头(在 ZipTask1 示例中),导致无法检索,但这是可以解决的,也许是测试本身的问题。我会看看如何处理零长度文件。 Dmytro Zelenskyy 2017.08.09 17:39 #16 问题出在哪里?我无法解压 zip.zip 文件(从示例中下载)。日志。 18:25:47.809 脚本 zip_arc101 GBPUSD,H1: 载入成功0 18:25:47.830 zip_arc101 GBPUSD,H1: 已初始化0 18:25:47.830 zip_arc101 GBPUSD,H1: Handle= 1 GetLastError= 00 18:25:47.830 zip_arc101 GBPUSD,H1:FileReadArray= 110040 18:25:47.830 zip_arc101 GBPUSD,H1: Zip.CreateFromCharArray= true0 18:25:47.830 zip_arc101 GBPUSD,H1: Archive successfully loaded.文件总数:70 18:25:47.836 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false0 18:25:47.837 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false0 18:25:47.837 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false0 18:25:47.837 zip_arc101 GBPUSD,H1: uninit reason 00 18:25:47.839 Script zip_arc101 GBPUSD,H1: removed Discussion of article "Handling 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 Gogetter EA Dmytro Zelenskyy 2017.08.09 17:41 #17 void OnStart() { //--- uchar zip_array[]; ResetLastError(); int Handle = FileOpen("zip.zip", FILE_READ|FILE_BIN|FILE_COMMON ); Print("Handle= ", Handle, " GetLastError= ", GetLastError() ); Print("FileReadArray= ", FileReadArray(Handle, zip_array) ); Print("Zip.CreateFromCharArray= ", Zip.CreateFromCharArray(zip_array) ); printf("Archive successfully loaded. Total files: "+(string)Zip.TotalElements()); Print("Zip.UnpackZipArchive= ", Zip.UnpackZipArchive("NNN",FILE_COMMON) ); Print("Zip.UnpackZipArchive= ", Zip.UnpackZipArchive("",FILE_COMMON) ); Print("Zip.UnpackZipArchive= ", Zip.UnpackZipArchive("", 0) ); } //+------------------------------------------------------------------+ Vasiliy Sokolov 2017.08.09 17:53 #18 CZip::UnpackZipArchive 方法虽然完成了任务,但由于某些原因总是返回 false。这是一个错误。通过现场观察检查实际解压缩情况。 Dmytro Zelenskyy 2017.08.09 21:40 #19 Vasiliy Sokolov:CZip::UnpackZipArchive 方法虽然完成了任务,但由于某些原因总是返回 false。这是一个错误。通过观察检查实际解压情况。是的。返回 false,但解压缩工作正常! Dmytro Zelenskyy 2017.08.10 01:01 #20 另一个问题是,如果我需要循环解压多个压缩包,只更改名称中的年份。只有 d2014.zip 被解压,仅此而已。0 01:57:36.772 Script zip_arc104 GBPUSD,H1: 载入成功0 01:57:36.807 zip_arc104 GBPUSD,H1: 已初始化0 01:57:36.807 zip_arc104 GBPUSD,H1: -------------- DD\d2014.zip0 01:57:36.815 zip_arc104 GBPUSD,H1: DD\d2014.zip Zip.LoadZipFromFile= true0 01:57:36.815 zip_arc104 GBPUSD,H1: Archive successfully loaded.文件总数:10 01:57:36.906 zip_arc104 GBPUSD,H1: Zip.UnpackZipArchive= false0 01:57:36.906 zip_arc104 GBPUSD,H1: -------------- DD\d2015.zip0 01:57:36.912 zip_arc104 GBPUSD,H1: DD\d2015.zip Zip.LoadZipFromFile= true0 01:57:36.912 zip_arc104 GBPUSD,H1: Archive successfully loaded.文件总数:11 01:57:36.912 zip_arc104 GBPUSD,H1: invalidpointer access in 'Zip.mqh' (407,28)0 01:57:36.913 zip_arc104 GBPUSD,H1: uninit reason 00 01:57:36.915 脚本 zip_arc104 GBPUSD,H1: 已删除 Discussion of article "Handling Big Expert Advisor example 神经网络在交易中的实际应用 Python (第一部分) 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
臭名昭著的结构铸造是脏话。将更正后的版本保留在附件中。
提示!非常感谢!
现在我仔细查看了你的错误--结构铸造的情况相同,但在另一个容器中--CDictionary。将 Include\Dictionary.mqh 替换为下面附带的变体。
是的,在 MT4 下一切运行正常,我还要再说一句,CZip 是我在 MT4 上项目的主力。
剩下的就是
'm_array' - structures containing objects are not allowed Dictionary.mqh 306 25
剩下的是这个:
'm_array' - structures containing objects are not allowed Dictionary.mqh 306 25
第 306 行应替换为以下片段:
在 MT4 的附件字典中
第 306 行应替换为该片段:
在 MT4 的附件字典中。
这样就说得通了。非常感谢。
PS.对于归档中的零长度文件,确实会创建一个错误的文件头(在 ZipTask1 示例中),因此无法检索,但这是可以解决的,也许是测试本身的问题。
有道理。非常感谢。
PS.对于归档中的零长度文件,确实会创建一个无效的文件头(在 ZipTask1 示例中),导致无法检索,但这是可以解决的,也许是测试本身的问题。
我会看看如何处理零长度文件。
问题出在哪里?我无法解压 zip.zip 文件(从示例中下载)。
日志。
18:25:47.809 脚本 zip_arc101 GBPUSD,H1: 载入成功
0 18:25:47.830 zip_arc101 GBPUSD,H1: 已初始化
0 18:25:47.830 zip_arc101 GBPUSD,H1: Handle= 1 GetLastError= 0
0 18:25:47.830 zip_arc101 GBPUSD,H1:FileReadArray= 11004
0 18:25:47.830 zip_arc101 GBPUSD,H1: Zip.CreateFromCharArray= true
0 18:25:47.830 zip_arc101 GBPUSD,H1: Archive successfully loaded.文件总数:7
0 18:25:47.836 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false
0 18:25:47.837 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false
0 18:25:47.837 zip_arc101 GBPUSD,H1: Zip.UnpackZipArchive= false
0 18:25:47.837 zip_arc101 GBPUSD,H1: uninit reason 0
0 18:25:47.839 Script zip_arc101 GBPUSD,H1: removed
CZip::UnpackZipArchive 方法虽然完成了任务,但由于某些原因总是返回 false。这是一个错误。通过现场观察检查实际解压缩情况。
CZip::UnpackZipArchive 方法虽然完成了任务,但由于某些原因总是返回 false。这是一个错误。通过观察检查实际解压情况。
是的。返回 false,但解压缩工作正常!
另一个问题是,如果我需要循环解压多个压缩包,只更改名称中的年份。
只有 d2014.zip 被解压,仅此而已。
0 01:57:36.772 Script zip_arc104 GBPUSD,H1: 载入成功
0 01:57:36.807 zip_arc104 GBPUSD,H1: 已初始化
0 01:57:36.807 zip_arc104 GBPUSD,H1: -------------- DD\d2014.zip
0 01:57:36.815 zip_arc104 GBPUSD,H1: DD\d2014.zip Zip.LoadZipFromFile= true
0 01:57:36.815 zip_arc104 GBPUSD,H1: Archive successfully loaded.文件总数:1
0 01:57:36.906 zip_arc104 GBPUSD,H1: Zip.UnpackZipArchive= false
0 01:57:36.906 zip_arc104 GBPUSD,H1: -------------- DD\d2015.zip
0 01:57:36.912 zip_arc104 GBPUSD,H1: DD\d2015.zip Zip.LoadZipFromFile= true
0 01:57:36.912 zip_arc104 GBPUSD,H1: Archive successfully loaded.文件总数:1
1 01:57:36.912 zip_arc104 GBPUSD,H1: invalidpointer access in 'Zip.mqh' (407,28)
0 01:57:36.913 zip_arc104 GBPUSD,H1: uninit reason 0
0 01:57:36.915 脚本 zip_arc104 GBPUSD,H1: 已删除