FileGetInteger

ファイルの整数プロパティを取得します。この関数には2つのバリアントがあります。

1.ファイルのハンドルでプロパティを取得します。

long  FileGetInteger(
   int                         file_handle,   // File handle
   ENUM_FILE_PROPERTY_INTEGER  property_id    // Property ID
   );

2.ファイル名でプロパティを取得します。

long  FileGetInteger(
   const string                file_name,            // File name
   ENUM_FILE_PROPERTY_INTEGER  property_id,          // Property ID
   bool                        common_folder=false   // The file is viewed in a local folder (false)
   );                                                // or a common folder of all terminals (true)

パラメーター

file_handle

[入力] FileOpen()によって返されるファイル記述子。

ファイル名

[入力]ファイル名。

property_id

[入力]ファイルプロパティID。値は、ENUM_FILE_PROPERTY_INTEGER列挙の値のいずれかです。関数の2番目のバリアントが使用される場合、次のプロパティの値のみを受け取ることができますFILE_EXISTS、FILE_CREATE_DATE、FILE_MODIFY_DATE、FILE_ACCESS_DATEおよびFILE_SIZE。

common_folder = false

[in]ファイルの場所を指します。パラメーターがfalseの場合、ターミナルデータフォルダーが表示されます。それ以外の場合、ファイルはすべての端末\ Terminal \ Common \ Files(FILE_COMMON)の共有フォルダーにあると想定されます。

戻り値

プロパティの値。エラーの場合、-1が返されます。エラーコードを取得するには、GetLastError()関数を使用します。

名前でプロパティを取得するときにフォルダーが指定されている場合、関数はエラー5018(ERR_MQL_FILE_IS_DIRECTORY)になりますが、戻り値は正しくなります。

注意

この関数は常にエラーコードを変更します。正常に完了した場合、エラーコードはNULLにリセットされます。

例:

//— display the window of input parameters when launching the script
#property script_show_inputs
//— input parameters
input string InpFileName=“data.csv”;
input string InpDirectoryName=“SomeFolder”;
//+——————————————————————+
//| Script program start function                                    |
//+——————————————————————+
void OnStart()
  {
   string path=InpDirectoryName+“//”+InpFileName;
   long   l=0;
//— open the file
   ResetLastError();
   int handle=FileOpen(path,FILE_READ|FILE_CSV);
   if(handle!=INVALID_HANDLE)
     {
      //— print all information about the file
      Print(InpFileName,” file info:”);
      FileInfo(handle,FILE_EXISTS,l,“bool”);
      FileInfo(handle,FILE_CREATE_DATE,l,“date”);
      FileInfo(handle,FILE_MODIFY_DATE,l,“date”);
      FileInfo(handle,FILE_ACCESS_DATE,l,“date”);
      FileInfo(handle,FILE_SIZE,l,“other”);
      FileInfo(handle,FILE_POSITION,l,“other”);
      FileInfo(handle,FILE_END,l,“bool”);
      FileInfo(handle,FILE_IS_COMMON,l,“bool”);
      FileInfo(handle,FILE_IS_TEXT,l,“bool”);
      FileInfo(handle,FILE_IS_BINARY,l,“bool”);
      FileInfo(handle,FILE_IS_CSV,l,“bool”);
      FileInfo(handle,FILE_IS_ANSI,l,“bool”);
      FileInfo(handle,FILE_IS_READABLE,l,“bool”);
      FileInfo(handle,FILE_IS_WRITABLE,l,“bool”);
      //— close the file
      FileClose(handle);
     }
   else
      PrintFormat(“%s file is not opened, ErrorCode = %d”,InpFileName,GetLastError());
  }
//+——————————————————————+
//| Display the value of the file property                           |
//+——————————————————————+
void FileInfo(const int handle,const ENUM_FILE_PROPERTY_INTEGER id,
              long l,const string type)
  {
//— receive the property value
   ResetLastError();
   if((l=FileGetInteger(handle,id))!=-1)
     {
      //— the value received, display it in the correct format
      if(!StringCompare(type,“bool”))
         Print(EnumToString(id),” = “,l ? “true” : “false”);
      if(!StringCompare(type,“date”))
         Print(EnumToString(id),” = “,(datetime)l);
      if(!StringCompare(type,“other”))
         Print(EnumToString(id),” = “,l);
     }
   else
      Print(“Error, Code = “,GetLastError());
  }

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="">