CFastFile - 将 uchar 数组用作虚拟文件的类 - MetaTrader 5 库
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小时后评论,即可解锁附件下载
立即登录
