欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

CFastFile - 将 uchar 数组用作虚拟文件的类 - MetaTrader 5 库

author emer | 224 人阅读 | 0 人评论 |

CFastFile 无需中间将数据写入磁盘上的物理文件。它在处理数据时提供了显着的加速。

它的功能类似于标准 FileWriteXXX/FileReadXXX 功能。这意味着您可以轻松地从使用物理文件迁移到使用内存中的“虚拟”文件进行快速工作。数据存储和读/写基于使用乌查尔-数组而不是物理文件。

函数列表:

    CFastFile(乌查尔&数据[]);// 从数组中初始化文件数据的构造函数   空白清除();// 清除文件   
   //--- 用于处理文件属性的函数   空白德利姆(乌查尔德利姆=';');// 为 CSV 模式设置分隔符(数据分隔符)   整数尺寸();// 获取文件大小   整数告诉();// 获取当前位置   空白寻找(整数抵消,整数起源);// 寻找   布尔值IsEnding();// 检查文件结尾 (EOF)   布尔值IsLineEnding();// 检查行尾   //--- 将数据写入文件的函数   单位写数组(乌查尔&src[],单位src_start=0,整数src_cnt=整个数组);//写入uchar数组   单位写双(双倍的五);// 写双精度   单位写浮点(漂浮五);
   单位写长(长的五);
   单位写入整数(整数五);
   单位写短(短的五);
   单位写字符(字符五);
   单位写入整数(整数五、整数sz=INT_VALUE);// 写入整数 - 为了与标准 FileWriteInteger 兼容   单位写入字符串(细绳五、整数碳纳米管);// 写入字符串cnt=-1表示CSV模式加\r\n   
   //--- 从文件读取的函数   单位读取数组(乌查尔&dst[],单位目标开始=0,整数cnt=整个数组);// 读取数组   双倍的ReadDouble();// 读取双精度   漂浮ReadFloat();   长的读长();   整数ReadInt();   短的ReadShort();   字符ReadChar();   整数读取整数(整数sz=INT_VALUE);// 读取整数 - 与标准 FileReadInteger 兼容   双倍的读数();//    细绳读取字符串(整数碳纳米管);读取字符串。 cnt=-1 表示 CSV 模式 - 读取到分隔符(数据分隔符)   
   //--- 函数,用于保存数据   单位节省(乌查尔&v[]);// 将文件保存到 uchar 数组   单位节省(整数h);// 将文件保存到磁盘上的真实文件。 h - 文件句柄(文件必须已打开)   单位节省(细绳文件);// 将文件保存到磁盘上的真实文件。文件 - 文件名   //--- 函数,用于加载数据   单位加载(乌查尔&v[]);// 从 uchar 数组加载文件   单位加载(整数h);// 从磁盘上的真实文件加载数据。 h - 文件句柄(文件必须已打开)   单位加载(细绳文件);// 从磁盘上的真实文件加载数据。文件 - 文件名

可以看到,函数的命名类似于标准文件操作

从真实文件迁移到快速文件很容易。而不是打开文件并获取文件句柄(例如,整数h)您需要创建 CFastFile 类实例,例如:

CFastFile f;

接下来需要按照规则更改常规文件函数:

文件写双精度小时,10)  ->  f.WriteDouble(10

为了便利性、 保存/加载添加了功能 - 它允许您将“虚拟”文件数据保存/加载到磁盘上的真实文件。

包含 CFastFile 类使用的演示示例。


附件下载

📎 fastfile_example.mq5 (1.75 KB)

📎 fastfile.mqh (13.95 KB)

Source: MQL5 #845

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录