设为首页 收藏本站 切换语言

量化交易之MQL4篇 - 文件及文件夹相关操作函数

| 发表于 2022-12-2 10:50:07 | 显示全部楼层 |复制链接
  1. string foo[4];
  2. void OnStart() {
  3.     // 文件夹及相关操作函数
  4.    // 创建/删除 abc 文件夹
  5.    FolderCreate("abc", 0);
  6.    FolderDelete("abc", 0);
  7.    // 清除 abc文件夹里面的所有文件
  8.    FolderClean("abc", 0);
  9.     // 文件及相关操作函数
  10.    // 将 a 文件夹下面的a.txt文件 移动/copy到 b文件夹下面 并重新命名为abc.txt
  11.    if(FileMove("a//a.txt", 0, "b//abc.txt", 0) == false){
  12.       Alert(GetLastError());
  13.    }
  14.    if(FileCopy("a//a.txt", 0, "b//abc.txt", 0) == false){
  15.       Alert(GetLastError());
  16.    }
  17.    // 删除文件
  18.    FileDelete("text.csv");
  19.    if(FileIsExist() == true) {
  20.       Print("文件存在");
  21.    } else {
  22.       Print("文件不存在");
  23.    }
  24.    string fileName;
  25.    // "*"表示搜索文件的条件, eg:如果想搜索包含t的文件用"t*"来表示
  26.    long fff = FileFindFirst("*", fileName, 0);
  27.    if(fff != INVALID_HANDLE) {
  28.       // 如果当前目录还有下一个文件
  29.       while(FileFindNext(fff, fileName) == true) {
  30.          //
  31.          //
  32.       }
  33.    }
  34.    // 文件内容操作函数
  35.    // FILE_CSV: 打开csv文件, FILE_SHARE_READ: 多个路径可以同时访问
  36.    int h = FileOpen("text.csv", FILE_READ|FILE_WRITE|FILE_CSV|FILE_SHARE_READ, ',', CP_ACP);
  37.    if(h != INVALID_HANDLE) {
  38.       // 将文件写入到缓存中
  39.       FileWrite(h, Symbol(), High[0], Open[0], Low[0], Close[0]);
  40.       FileWrite(h, Symbol(), High[1], Open[1], Low[1], Close[1]); // 写入到csv文件的第二行
  41.       // 写入的数组必须要是字符串数组;
  42.       foo[0] = High[0];
  43.       foo[1] = Open[0];
  44.       foo[2] = Low[0];
  45.       foo[3] = Close[0];
  46.       FileWriteArray(h, foo, 0, WHOLE_ARRAY);
  47.       // 把当前缓存的内容写入到文件里
  48.       FileFlush(h);
  49.       // 不能紧跟着FileWrite函数之后使用
  50.       string read;
  51.       ulong ft = 0;
  52.       while(FileIsEnding(h) == false) {
  53.          if(FileIsLineEnding(h) == true) {
  54.             Print(read);
  55.             read = "";
  56.          }
  57.          // 强制光标移动到文件中 16 的位置
  58.          FileSeek(h, 16, SEEK_SET);
  59.          // 读取光标在文件中的位置
  60.          ft = FileTell(h);
  61.          read += FileReadString(h, 0);
  62.          ft = FileTell(h);
  63.       }
  64.       // 调用FileClose的时候会把当前缓存的内容一次性写入文件
  65.       FileClose(h);
  66.    }
  67. }
复制代码
如果有帮助,就支持一下我呗
举报

评论 使用道具

精彩评论4

紫竹青荷
CC
| 发表于 2022-12-2 11:03:03 | 显示全部楼层
路过看看
举报

点赞 评论 使用道具

daerwushen
DD
| 发表于 2022-12-2 18:17:15 | 显示全部楼层
文件及文件夹相关操作函数
举报

点赞 评论 使用道具

ken138888
B
| 发表于 2022-12-3 07:20:34 | 显示全部楼层
谢谢科普.
举报

点赞 评论 使用道具

ssbienhild
DD
| 发表于 2022-12-4 14:45:18 | 显示全部楼层
支持源码,学习一下
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)