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

MQL5 的 CSV 文件阅读器 - MetaTrader 5 库

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

1. 在 MqlParam 数组中设置列描述数组。

   CCsvReader infile; 
  消息参数example_column_desc[] =
   {
    {TYPE_STRING,  0,0.0,“象征”},      // 1. 字段是字符串    {类型_双,  0,0.0,“合同规模”},// 2. 字段为双精度    {类型_日期时间,0,0.0,“过期”}    // 3. 字段为日期时间   }; 
   infile.FieldDesc(example_column_desc);


2.使用Open()函数打开文件

   内文件。打开(Inp文件名,文件读取);

2a.当文件有标题并且您对标题行的内容不感兴趣时​​,使用 Readline(void) 跳过它。  

infile.ReadLine();


3. 使用 ReadLine(MqlParam arr),MqlParam 数组将填充 CSV 文件的一个文本行的值。

  消息参数数据线[];
  整数字段阅读;
   fieldsread = infile.ReadLine(数据行);
 

该类的缺点

  • 这段代码不是很快
  • 目前仅处理 Unicode 文件。单字节文件不是开发优先事项。
  • 此代码可能会读取一行并注意到在该行末尾达到了 EOF。如果 可能不要使用 IsEnding() 进行测试,而是使用 ReadLine 函数的返回值。返回值只会返回FILE_STATE_EOF 下一次阅读后。因此所有记录都将被处理。

使用样本

我提供了一个包含 3 张纸的 LibreCalc 电子表格。这是一个计算金字塔系统的一些阶数的示例。第一个工作表通过“另存为...”导出为 CSV 文件。使用以制表符作为分隔符的 CSV 文件格式并使用 Unicode。将 CSV 文件放入您的 \Files 目录中。脚本 Sample.mq5 将读取 CSV 文件并打印 CSV 文件的值。


附件下载

📎 sample.mq5 (3.59 KB)

📎 csvreader.mqh (19.16 KB)

📎 enum_file_state.mqh (0.9 KB)

Source: MQL5 #24777

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