無料でロボットをダウンロードする方法を見る
Twitter上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
スクリプト

Demo_FileSize - MetaTrader 5のためのスクリプト

ビュー:
808
評価:
(29)
パブリッシュ済み:
2016.09.29 12:23
アップデート済み:
2016.11.22 07:34
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

このスクリプトは、すべてのクライアント端末に共通なフォルダにあるすべてのCSVファイルを1つずつソートしてサイズを取得します。サイズの取得後には、その値が「InpThresholdSize」の閾値と比較され、結果によって、ファイルが「InpBigFolderName」か「InpSmallFolderName」フォルダのいずれかに配置されます。よって大小のファイルがソートされています。

FileSize()関数の使用に加えてFileFindFirst()、FileFindNext()及びFileFindClose()関数がファイルのソートに使われ、移動にはFileMove()関数が使われます。

コード:

//--- スクリプト起動時に入力パラメータウィンドウを表示する
#property script_show_inputs
//--- 入力パラメータ
input ulong  InpThresholdSize=20;        // キロバイト単位でのファイルサイズのしきい値
input string InpBigFolderName="big";     // 大きいファイルのフォルダ
input string InpSmallFolderName="small"; // 小さいファイルのフォルダ
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string   file_name;      // ファイル名を格納する変数
   string   filter="*.csv"; // ファイル検索フィルタ
   ulong    file_size=0;    // バイト単位のファイルサイズ
   int      size=0;         // ファイル数
//--- 操作するファイルへのパスを出力する
   PrintFormat("Working in %s\\Files\\ folder",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
//--- 全ての端末に共通なフォルダのルートで検索ハンドルを受け取る
   long search_handle=FileFindFirst(filter,file_name,FILE_COMMON);
//--- FileFindFirst() の実行が成功したかをチェックする
   if(search_handle!=INVALID_HANDLE)
     {
      //--- サイズによってファイルをループで移動する
      do
        {
         //--- ファイルを開く
         ResetLastError();
         int file_handle=FileOpen(file_name,FILE_READ|FILE_CSV|FILE_COMMON);
         if(file_handle!=INVALID_HANDLE)
           {
            //--- ファイルサイズを受け取る
            file_size=FileSize(file_handle);
            //--- ファイルを閉じる
            FileClose(file_handle);
           }
         else
           {
            PrintFormat("Failed to open %s file, Error code = %d",file_name,GetLastError());
            continue;
           }
         //--- ファイルサイズを出力する
         PrintFormat("Size of %s file is equal to %d bytes",file_name,file_size);
         //--- ファイル移動のパスを定義する
         string path;
         if(file_size>InpThresholdSize*1024)
            path=InpBigFolderName+"//"+file_name;
         else
            path=InpSmallFolderName+"//"+file_name;
         //--- ファイルを移動する
         ResetLastError();
         if(FileMove(file_name,FILE_COMMON,path,FILE_REWRITE|FILE_COMMON))
            PrintFormat("%s file is moved",file_name);
         else
            PrintFormat("Error, code = %d",GetLastError());
        }
      while(FileFindNext(search_handle,file_name));
      //--- 検索ハンドルを閉じる
      FileFindClose(search_handle);
     }
   else
      Print("Files not found!");
  }

MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1633

Demo_FileReadDouble Demo_FileReadDouble

この指標はFileReadDouble() 関数の使用例を実証します。

Demo_FileWriteDouble Demo_FileWriteDouble

このスクリプトはFileWriteDouble()関数の使用例を実証します。

Demo_FileTell Demo_FileTell

このスクリプトは FileTell()関数の使用例を実証します。

Demo_FileWriteInteger Demo_FileWriteInteger

このスクリプトはFileWriteInteger()関数の使用例を実証します。