EATC

 找回密码
 立即注册
查看: 912|回复: 1

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

[复制链接]

283

主题

2119

帖子

1148

积分

客服

Rank: 7Rank: 7Rank: 7

积分
1148
发表于 2022-12-2 12:27:37 | 显示全部楼层 |阅读模式
string foo[4];

void OnStart() {



    // 文件夹及相关操作函数

   // 创建/删除 abc 文件夹
   FolderCreate("abc", 0);
   FolderDelete("abc", 0);
   // 清除 abc文件夹里面的所有文件
   FolderClean("abc", 0);










    // 文件及相关操作函数

   // 将 a 文件夹下面的a.txt文件 移动/copy到 b文件夹下面 并重新命名为abc.txt
   if(FileMove("a//a.txt", 0, "b//abc.txt", 0) == false){
      Alert(GetLastError());
   }
   if(FileCopy("a//a.txt", 0, "b//abc.txt", 0) == false){
      Alert(GetLastError());
   }
   // 删除文件
   FileDelete("text.csv");

   if(FileIsExist() == true) {
      Print("文件存在");
   } else {
      Print("文件不存在");
   }

   string fileName;
   // "*"表示搜索文件的条件, eg:如果想搜索包含t的文件用"t*"来表示
   long fff = FileFindFirst("*", fileName, 0);
   if(fff != INVALID_HANDLE) {
      // 如果当前目录还有下一个文件
      while(FileFindNext(fff, fileName) == true) {
         //
         //
      }
   }









   // 文件内容操作函数

   // FILE_CSV: 打开csv文件, FILE_SHARE_READ: 多个路径可以同时访问
   int h = FileOpen("text.csv", FILE_READ|FILE_WRITE|FILE_CSV|FILE_SHARE_READ, ',', CP_ACP);

   if(h != INVALID_HANDLE) {
      // 将文件写入到缓存中
      FileWrite(h, Symbol(), High[0], Open[0], Low[0], Close[0]);
      FileWrite(h, Symbol(), High[1], Open[1], Low[1], Close[1]); // 写入到csv文件的第二行

      // 写入的数组必须要是字符串数组;
      foo[0] = High[0];
      foo[1] = Open[0];
      foo[2] = Low[0];
      foo[3] = Close[0];
      FileWriteArray(h, foo, 0, WHOLE_ARRAY);


      // 把当前缓存的内容写入到文件里
      FileFlush(h);

      // 不能紧跟着FileWrite函数之后使用
      string read;
      ulong ft = 0;
      while(FileIsEnding(h) == false) {

         if(FileIsLineEnding(h) == true) {
            Print(read);
            read = "";
         }

         // 强制光标移动到文件中 16 的位置
         FileSeek(h, 16, SEEK_SET);
         // 读取光标在文件中的位置
         ft = FileTell(h);
         read += FileReadString(h, 0);
         ft = FileTell(h);
      }

      // 调用FileClose的时候会把当前缓存的内容一次性写入文件
      FileClose(h);
   }

}


回复

使用道具 举报

1865

主题

4425

帖子

1万

积分

交易元老

Rank: 8Rank: 8

积分
16489
发表于 2024-1-18 10:21:51 | 显示全部楼层
楼主66666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

收藏本站|法律声明|Archiver|小黑屋|support@ea198.com|EATC ( 桂ICP备2022005787号 )

风险提示与免责声明:擅自从事外汇保证金交易的双方不受法律保护!社区内展示内容,均为网友自发分享,不构成投资建议,社区无法全面监控由第三方上传至社区的资源,因此不保证资源的合法性、安全性、完整性、真实性或品质等。您下载时,同意自行判断并承担所有风险。社区内的资源,仅限用于学习和研究目的,不得将用于商业或者非法用途,否则,一切后果请用户自负。社区信息来自网络,版权争议与社区无关,您下载后须在24个小时之内进行删除。如果您喜欢该内容,请支持正版。如有侵权请邮件与我们联系处理。