//--- 启动脚本时显示输入参数的窗口
#property script_show_inputs
//--- 输入参数
input string InpSrc="source.txt"; // 源
input string InpDst="destination.txt"; // 复制
input int InpEncodingType=FILE_ANSI; // ANSI=32 或 UNICODE=64
//+------------------------------------------------------------------+
//| 脚本程序启动函数 |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 显示源内容(它必须存在)
if(!FileDisplay(InpSrc))
return;
//--- 检查复制文件是否已经存在(可能没有创建)
if(!FileDisplay(InpDst))
{
//--- 复制文件不存在,无FILE_REWRITE标识复制 (正确复制)
if(FileCopy(InpSrc,0,InpDst,0))
Print("File is copied!");
else
Print("File is not copied!");
}
else
{
//--- 复制文件已经存在,尝试无FILE_REWRITE标识复制(不正确复制)
if(FileCopy(InpSrc,0,InpDst,0))
Print("File is copied!");
else
Print("File is not copied!");
//--- InpDst 文件的内容保持不变
FileDisplay(InpDst);
//--- 再次使用FILE_REWRITE标识复制(如果文件存在,正确复制)
if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE))
Print("File is copied!");
else
Print("File is not copied!");
}
//--- 接收InpSrc文件复制
FileDisplay(InpDst);
}
//+------------------------------------------------------------------+
//| 阅读文件内容 |
//+------------------------------------------------------------------+
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("File name = %s",file_name);
while(!FileIsEnding(file_handle))
Print(FileReadString(file_handle));
Print("+---------------------+");
//--- 关闭文件
FileClose(file_handle);
return(true);
}
//--- 打开文件失败
PrintFormat("%s is not opened, error = %d",file_name,GetLastError());
return(false);
}
|