下载MetaTrader 5
要添加评论,请登录注册
MQL5.community成员的所有活动都显示在一个页面上!
MetaQuotes Software Corp.
版主
181029
MetaQuotes Software Corp. 2016.02.22 15:40 

新文章 单纯使用 MQL5 语言处理 ZIP 档案已发布:

为什么需要它?

数据压缩是最重要的技术之一, 特别在互联网方面广泛应用. 压缩有助于节约传输, 存储和处理数据的资源. 数据压缩在通讯的所有领域都有应用, 也包括在几乎所有的计算机相关任务中.

在 经济方面也不例外: 以GB为单位计算的订单历史, 报价数据流, 包括市场深度(等级二数据) 都不能使用未经压缩的原始格式来存储. 许多服务器, 包括提供用于交易分析数据的, 都以ZIP档案的形式保存数据. 过去不可能使用MQL5的标准工具来自动获取此类信息. 现在情况已经有所改变.

通 过使用 WebRequest 函数, 您可以下载一个ZIP档案并立即在计算机上把它解压缩. 这些特性都是很重要的, 很多交易者也一定需要它们. 数据压缩甚至可以用于优化计算机内存. 至于如何去做, 我们将在本文的3.2章节来介绍. 最后, 如果我们可以操作ZIP档案, 我们就可以访问微软Office标准的Office Open XML, 然后我们就可以直接使用MQL5来创建简单的Excel或者Word文件, 而不需要使用第三方的DLL库.

你可以看到, ZIP档案应用程序是可以扩展的, 我们创建的类可以服务于所有MetaTrader用户.

在 本文的第一章中, 我们将会描述ZIP文件的格式, 并且想办法来得到其中包含的数据块. 这一章的内容不仅对学习MQL的人有帮助, 它也是数据存储方面的一个很好的教学资料. 第二章介绍了CZip, CZipFile 和 CZipDirectory 类, 它们是操作档案的主要面向对象元素. 第三章介绍了与使用存档相关的实际例子. 而第四章包含了与所提供类相关的文档.

就这样, 让我们开始学习这种最常见的存档类型吧.

每个ZIP档案都是包含一定顺序字节序列的二进制文件. 另一方面, ZIP档案中的每个文件都有名称, 特性(例如文件修改时间), 以及其他一些我们曾在任意操作系统的文件系统中看到的属性. 另外, 除了压缩的数据, 每个ZIP档案还保存着压缩文件的名称, 特性和其他服务信息. 服务信息是使用非常特别的形式存放的, 并且具有一个通用结构. 例如, 如果一个档案包含两个文件 (File#1File#2), 它就会有如下的结构:


图 1. 包含两个文件的ZIP档案的结构显示: File#1 和 File#2

作者:Vasiliy Sokolov

/
要添加评论,请登录注册