FileCopy

この関数は、ローカルまたは共有フォルダーから別のファイルに元のファイルをコピーします。

bool  FileCopy(
   const string  src_file_name,     // Name of a source file
   int           common_flag,       // Location
   const string  dst_file_name,     // Name of the destination file
   int           mode_flags         // Access mode
   );

パラメーター

src_file_name

[入力]コピーするファイル名。

common_flag

[in] ファイルの場所を決定するフラグ。common_flag = FILE_COMMONの場合、ファイルはすべてのクライアント端末\ Terminal \ Common \ Filesの共有フォルダーにあります。それ以外の場合、ファイルはローカルフォルダーにあります(たとえば、common_flag = 0 )。

dst_file_name

[in]結果ファイル名。

mode_flags

[in] アクセスフラグ。パラメータには、FILE_REWRITEおよび/またはFILE_COMMONの2つのフラグのみを含めることができます。他のフラグは無視されます。ファイルが既に存在し、FILE_REWRITEフラグが指定されていない場合、ファイルは書き換えられず、関数はfalseを返します。

戻り値

失敗した場合、関数はfalseを返します。

注意

セキュリティ上の理由から、ファイルの操作はMQL4言語で厳密に制御されています。ファイル操作がMQL4手段を使用して実行されるファイルは、ファイルサンドボックスの外部に配置できません。

新しいファイルがすでに存在する場合、mode_flagsパラメーターのFILE_REWRITEフラグの可用性に応じてコピーが作成されます。

例:

//— 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);
  }

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">