- 显示:
- 1556
- 等级:
- 已发布:
- 2013.10.24 14:24
- 已更新:
- 2016.11.22 07:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
这段脚本搜索客户端本地文件夹中所有文本文件,并删除所有创建日期小于 "InpFilesDate" 输入参数的文件。客户端的本地文件夹位置包含在 TerminalInfoString() 函数。
PrintFormat("客户端本地文件夹路径: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
注: 脚本将删除本地文件夹中所有创建早于 2010 年 1 月 1 日的文本文件 (InpFilesDate 参数的省缺值)。所以, 启动脚本前, 确认客户端本地文件夹中没有重要文件。
代码:
//--- 当脚本启动时显示输入参数窗口 #property script_show_inputs //--- 老文件日期 input datetime InpFilesDate=D'2010.01.01 00:00'; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { string file_name; // 存储文件名变量 string filter="*.txt"; // 搜索文件过滤 datetime create_date; // 文件创建日期 string files[]; // 文件名清单 int def_size=25; // 省缺尺寸数组 int size=0; // 文件数 //--- 为数组分配内存 ArrayResize(files,def_size); //--- 搜索句柄 long search_handle=FileFindFirst(filter,file_name); //--- 检查是否 FileFindFirst() 执行成功 if(search_handle!=INVALID_HANDLE) { //--- 循环搜索文件 do { files[size]=file_name; //--- 增加数组尺寸 size++; if(size==def_size) { def_size+=25; ArrayResize(files,def_size); } //--- 重置错误值 ResetLastError(); //--- 接收文件创建日期 create_date=(datetime)FileGetInteger(file_name,FILE_CREATE_DATE,false); //--- 检查文件是否太旧 if(create_date<InpFilesDate) { PrintFormat("%s 文件删除!",file_name); //--- 删除旧文件 FileDelete(file_name); } } while(FileFindNext(search_handle,file_name)); //--- 关闭搜索句柄 FileFindClose(search_handle); } else { Print("文件未找到!"); return; } //--- 检查剩余文件 PrintFormat("结果:"); for(int i=0;i<size;i++) { if(FileIsExist(files[i])) PrintFormat("%s 文件存在!",files[i]); else PrintFormat("%s 文件删除!",files[i]); } }
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/1610

这段脚本简单示例如何使用 FileFindFirst(), FileFindNext() 和 FileFindClose() 函数

这段脚本在单一图表窗口中显示若干子图表,子图表数量则是市场观察菜单中的货币对数量。