FileGetInteger 関数
この関数は、ファイルの整数型のプロパティ値を取得します。取得可能なプロパティ値は ENUM_FILE_PROPERTY_INTEGER 列挙値にある内容になります。
データ型と構成・戻り値
この関数には 2つの型があります。
long FileGetInteger(①, ③); // ファイルハンドルで指定
long FileGetInteger(②, ③, ④); // ファイル名で指定
戻り値は、引数③で設定したファイルのプロパティ値を返します。エラーの場合は -1が返されます。
発生するエラーについては、GetLastError関数で取得することができます。関数は常にエラーコードを変更します。正常に完了した場合、エラーコードは NULLにリセットされます。
引数 [2]
FileGetInteger関数は 2~3個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | file_handle | int | - | - | FileOpen関数によって取得されるファイルハンドル。 |
② | file_name | const string | - | - | ファイル名。 |
③ | property_id | enum | - | - | 取得するファイルプロパティ値。ENUM_FILE_PROPERTY_INTEGER 列挙値から選択します。2番目の関数 (ファイル名で指定) の型を使用すると ENUM_FILE_PROPERTY_INTEGER 列挙値の 1~5までのみ使用できます。 |
④ | common_folder | bool | - | false | ファイルのフォルダの位置。 初期値の「false」の時、 …\Terminal\〇〇〇\MQL4\Files フォルダが指定されます。 それ以外の時、 …\Terminal\Common\Files フォルダが指定されます。 |
引数④で設定できるフォルダは、次の2つになります。
① …\Terminal\〇〇〇\MQL4\Files
② …\Terminal\Common\Files
です。①の「〇〇〇」はインストールしたMT4の任意の文字列です。
上記フォルダは、MT4のメニュー「ファイル」→「データフォルダを開く」で展開されたフォルダから、①のフォルダは展開したフォルダの中に「MQL4」フォルダ があるので、その中に「Files」フォルダがあります。②のフォルダは展開したフォルダの1つ上の階層に「Common」フォルダがあるので、その中に「Files」フォルダがあります。
MQL4でファイル操作を実行するファイルは、セキュリティ上の理由でこれら 2つのフォルダ以外に置くことはできません。
使用例
FileGetInteger関数によるファイルのプロパティ値の取得
FileGetInteger関数を使ってファイルのプロパティ値を取得します。
コード
// FileGetInteger関数によるファイルのプロパティ値の取得
#property strict
void OnInit() {
string filename = "test.csv"; // ファイル名
int handle; // ファイルハンドル
handle = FileOpen(filename, FILE_READ | FILE_WRITE | FILE_CSV );
uint b = FileWrite(handle, "test");
Print("①ファイルの有無:", (bool) FileGetInteger(handle, FILE_EXISTS)); // 1
Print("②ファイルの作成日:", (datetime)FileGetInteger(handle, FILE_CREATE_DATE)); // 2
Print("③ファイルの最終更新日:", (datetime)FileGetInteger(handle, FILE_MODIFY_DATE)); // 3
Print("④ファイルへの最終アクセス日:", (datetime)FileGetInteger(handle, FILE_ACCESS_DATE)); // 4
Print("⑤ファイルサイズ:", FileGetInteger(handle, FILE_SIZE), " バイト"); // 5
Print("⑥ファイルポインタの位置:", FileGetInteger(handle, FILE_POSITION), " バイト"); // 6
FileClose(handle);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
各行の後ろにあるコメントの数値は、2番目の引数の識別子に対応する値です。識別子の代わりにこの値を使うこともできます。