- 显示:
- 1497
- 等级:
- 已发布:
- 2013.10.24 14:42
- 已更新:
- 2016.11.22 07:33
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
这段脚本简单示例如何使用 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 Ltd译自俄语
原代码: https://www.mql5.com/ru/code/1611

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

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