下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

显示:
517
等级:
投票: 28
已发布:
2013.10.24 14:46
已更新:
2016.11.22 07:33
data.txt (0.03 KB)

这段脚本尝试移动源文件从客户端本地文件夹至所有客户端共享的子目录。文件名和子目录名由脚本的输入参数指定。客户端的本地文件夹位置包含在 TerminalInfoString() 函数。

PrintFormat("客户端本地文件夹路径: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
PrintFormat("客户端共享文件夹路径: %s\\Files\\",TerminalInfoString(TERMINAL_COMMONDATA_PATH));

首先, 脚本调用 FileIsExist() 函数来确认客户端本地文件夹中是否有源文件存在, 如果没有, 则发错误消息。之后它将检查是否有目标文件存在于指定路径。如果目标文件不存在, 移动执行江不会加 FILE_REWRITE 标志。否则, 使用标志, 或者移动不会执行。

代码:

//--- 当脚本启动时显示输入参数窗口
#property script_show_inputs
//--- 输入参数
input string InpSrcName="data.txt";
input string InpDstName="newdata.txt";
input string InpSrcDirectory="SomeFolder";
input string InpDstDirectory="OtherFolder";
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string local=TerminalInfoString(TERMINAL_DATA_PATH);
   string common=TerminalInfoString(TERMINAL_COMMONDATA_PATH);
//--- 文件路径变量
   string src_path;
   string dst_path;
   StringConcatenate(src_path,InpSrcDirectory,"//",InpSrcName);
   StringConcatenate(dst_path,InpDstDirectory,"//",InpDstName);
//--- 检查源文件是否存在 (如果不存在 - 退出)
   if(FileIsExist(src_path))
      PrintFormat("%s 文件存在 %s\\Files\\%s 文件夹",InpSrcName,local,InpSrcDirectory);
   else
     {
      PrintFormat("错误, %s 源文件未发现",InpSrcName);
      return;
     }
//--- 检查目标文件是否存在
   if(FileIsExist(dst_path,FILE_COMMON))
     {
      PrintFormat("%s 文件存在 %s\\Files\\%s 文件夹",InpDstName,common,InpDstDirectory);
      //--- 文件存在, 移动操作要有 FILE_REWRITE 标志
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON|FILE_REWRITE))
         PrintFormat("%s 文件移动",InpSrcName);
      else
         PrintFormat("错误!代码 = %d",GetLastError());
     }
   else
     {
      PrintFormat("%s 文件不存在 %s\\Files\\%s 文件夹",InpDstName,common,InpDstDirectory);
      //--- 文件不存在, 移动操作执行无需 FILE_REWRITE 标志
      ResetLastError();
      if(FileMove(src_path,0,dst_path,FILE_COMMON))
         PrintFormat("%s 文件移动",InpSrcName);
      else
         PrintFormat("错误!代码 = %d",GetLastError());
     }
//--- 文件移动; 检查
   if(FileIsExist(dst_path,FILE_COMMON) && !FileIsExist(src_path,0))
      Print("成功!");
   else
      Print("错误!");
  }

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/1614

演示_FileCopy 演示_FileCopy

这段脚本简单示例如何使用 FileCopy() 函数

演示_FileDelete 演示_FileDelete

这段脚本简单示例如何使用 FileDelete() 函数

演示_FileFlush 演示_FileFlush

这段脚本简单示例如何使用 FileFlush() 函数

演示_FileIsEnding 演示_FileIsEnding

这段脚本简单示例如何使用 FileIsEnding() 函数