下载MetaTrader 5

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

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

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

显示:
633
等级:
投票: 29
已发布:
2013.10.24 14:42
已更新:
2016.11.22 07:33
destination.txt (0.03 KB)
source.txt (0.02 KB)

这段脚本简单示例如何使用 FileCopy() 函数将一个文件的内容复制到另一个。源文件必须在客户端本地文件夹下,文件名由 "InpSrc" 输入参数指定。客户端的本地文件夹位置包含在 TerminalInfoString() 函数。

PrintFormat("客户端本地文件夹路径: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH)); 
首先脚本尝试显示文件内容。如果目的文件不存在,您可使用复制 FileCopy() 函数,而无需 FILE_REWRITE 标志。如果目的文件已经存在, 那么若要复制成功,必须加 FILE_REWRITE 标志。

代码:

//--- 当脚本启动时显示输入参数窗口
#property script_show_inputs
//--- 输入参数
input string InpSrc="source.txt";       // source
input string InpDst="destination.txt";  // copy
input int    InpEncodingType=FILE_ANSI; // ANSI=32 or UNICODE=64
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 显示源内容 (它必须存在)
   if(!FileDisplay(InpSrc))
      return;
//--- 检查目的是否文件已经存在 (也许没有)
   if(!FileDisplay(InpDst))
     {
      //--- 目的文件不存在, 复制无需使用 FILE_REWRITE 标志 (正确复制)
      if(FileCopy(InpSrc,0,InpDst,0))
         Print("文件已复制!");
      else
         Print("文件未复制!");
     }
   else
     {
      //--- 目的文件已存在, 尝试复制且不用 FILE_REWRITE 标志 (不正确复制)
      if(FileCopy(InpSrc,0,InpDst,0))
         Print("文件已复制!");
      else
         Print("文件未复制!");
      //---InpDst 文件的内容一致
      FileDisplay(InpDst);
      //--- 再次复制,使用 FILE_REWRITE 标志 (正确复制即使文件存在)
      if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE))
         Print("文件已复制!");
      else
         Print("文件未复制!");
     }
//--- 接收 InpSrc 文件复制
   FileDisplay(InpDst);
  }
//+------------------------------------------------------------------+
//| Read the file contents                                           |
//+------------------------------------------------------------------+
bool FileDisplay(const string file_name)
  {
//---重置错误值
   ResetLastError();
//--- 打开文件
   int file_handle=FileOpen(file_name,FILE_READ|FILE_TXT|InpEncodingType);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- 循环显示文件内容
      Print("+---------------------+");
      PrintFormat("文件名 = %s",file_name);
      while(!FileIsEnding(file_handle))
         Print(FileReadString(file_handle));
      Print("+---------------------+");
      //--- 关闭文件
      FileClose(file_handle);
      return(true);
     }
//--- 打开文件失败
   PrintFormat("%s 没有打开, 错误代码 = %d",file_name,GetLastError());
   return(false);
  }

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

演示_FileDelete 演示_FileDelete

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

演示_FileFind 演示_FileFind

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

演示_FileMove 演示_FileMove

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

演示_FileFlush 演示_FileFlush

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