//+------------------------------------------------------------------+ //| Demo_FileCopy.mq5 | //| Copyright 2013, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" //--- display the window of input parameters when launching the script #property script_show_inputs //--- input parameters 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() { //--- display the source contents (it must exist) if(!FileDisplay(InpSrc)) return; //--- check if the copy file already exists (may not be created) if(!FileDisplay(InpDst)) { //--- the copy file does not exist, copying without FILE_REWRITE flag (correct copying) if(FileCopy(InpSrc,0,InpDst,0)) Print("File is copied!"); else Print("File is not copied!"); } else { //--- the copy file already exists, try to copy without FILE_REWRITE flag (incorrect copying) if(FileCopy(InpSrc,0,InpDst,0)) Print("File is copied!"); else Print("File is not copied!"); //--- InpDst file's contents remains the same FileDisplay(InpDst); //--- copy once more with FILE_REWRITE flag (correct copying if the file exists) if(FileCopy(InpSrc,0,InpDst,FILE_REWRITE)) Print("File is copied!"); else Print("File is not copied!"); } //--- receive InpSrc file copy FileDisplay(InpDst); } //+------------------------------------------------------------------+ //| Read the file contents | //+------------------------------------------------------------------+ bool FileDisplay(const string file_name) { //--- reset the error value ResetLastError(); //--- open the file int file_handle=FileOpen(file_name,FILE_READ|FILE_TXT|InpEncodingType); if(file_handle!=INVALID_HANDLE) { //--- display the file contents in the loop Print("+---------------------+"); PrintFormat("File name = %s",file_name); while(!FileIsEnding(file_handle)) Print(FileReadString(file_handle)); Print("+---------------------+"); //--- close the file FileClose(file_handle); return(true); } //--- failed to open the file PrintFormat("%s is not opened, error = %d",file_name,GetLastError()); return(false); } //+------------------------------------------------------------------+