ENUM_FILE_PROPERTY_INTEGERとは
ENUM_FILE_PROPERTY_INTEGERは、MQL5でファイルのさまざまなプロパティ(属性や情報)を識別するための列挙型です。この列挙型を使用することで、ファイルの存在確認や作成日、最終更新日などの情報を取得できます。
ENUM_FILE_PROPERTY_INTEGERが定める識別子は以下の通りです。
FILE_EXISTS
FILE_EXISTSは、指定されたファイルが存在するかどうかを確認するための識別子です。このプロパティを使用することで、ファイルの存在をチェックすることができます。
FILE_CREATE_DATE
FILE_CREATE_DATEは、指定されたファイルの作成日を取得するための識別子です。このプロパティを使用することで、ファイルが作成された日付をチェックすることができます。
FILE_MODIFY_DATE
FILE_MODIFY_DATEは、指定されたファイルの最終更新日を取得するための識別子です。このプロパティを使用することで、ファイルが最後に更新された日付をチェックすることができます。
FILE_ACCESS_DATE
FILE_ACCESS_DATEは、指定されたファイルの最終アクセス日を取得するための識別子です。このプロパティを使用することで、ファイルが最後にアクセスされた日付をチェックすることができます。
FILE_SIZE
FILE_SIZEは、指定されたファイルのバイトサイズを取得するための識別子です。このプロパティを使用することで、ファイルのサイズをチェックすることができます。
FILE_POSITION
FILE_POSITIONは、指定されたファイル内のポインタ位置を取得するための識別子です。このプロパティを使用することで、ファイル内の現在の読み取り位置をチェックすることができます。
ポインタ位置の補足説明
ポインタ位置とは、ファイルを読み書きする際にどこまで処理が進んでいるかを示す位置のことです。ファイルを読み込む際、データは最初から順番に読み取られます。このとき、どこまで読み取ったかを記憶しておくのがファイルポインタです。例えば、ファイルの途中まで読み取った場合、その位置がポインタ位置として記録されます。次にファイルを読み込むときは、このポインタ位置から続けてデータを読み取ります。
FILE_END
FILE_ENDは、ファイルの終端に達したかどうかを確認するための識別子です。このプロパティを使用することで、現在の読み取り位置がファイルの終わりに達しているかどうかをチェックすることができます。
FILE_LINE_END
FILE_LINE_ENDは、ファイル内の行終了の記号を取得するための識別子です。このプロパティを使用することで、ファイル内の行の終わりを示す記号をチェックすることができます。
FILE_ENDとFILE_LINE_ENDの違い
FILE_LINE_ENDとFILE_LINE_ENDはそれぞれ異なる役割を持っています。
- FILE_LINE_END: ファイル全体の終端に達したかどうかを確認するための識別子です。これはファイル全体の最後の位置を指します。ファイルを読み進めているときに、現在の読み取り位置がファイルの終わりに達しているかどうかをチェックします。
- FILE_LINE_END: ファイル内の行終了の記号を取得するための識別子です。これは、ファイル内の各行の終わりを示す記号を指します。具体的には、テキストファイルで行の区切りとして使われる改行コード(例えば、\nや\r\n)を示します。
FILE_LINE_ENDは、ファイル内の行の終わりに書かれている文字を読み取って返すわけではなく、行の区切りに使われている記号を示します。改行コードなどが対象となります。
FILE_IS_COMMON
FILE_IS_COMMONは、ファイルが全てのクライアント端末(ユーザーのコンピュータ)の共有フォルダにあるかどうかを確認するための識別子です。このプロパティを使用することで、ファイルが共有フォルダに存在するかをチェックすることができます。
共有フォルダを示す定数「FILE_COMMON」について
- FILE_COMMON: この定数は4096という値を持ち、全てのクライアント端末(ユーザーのコンピュータ)の共有フォルダを示します。
- 共有フォルダのパス: この共有フォルダは\Terminal\Common\Filesに位置し、全てのクライアント端末からアクセス可能なフォルダです。
FILE_IS_COMMONプロパティを使用することで、指定されたファイルがこの共有フォルダに存在するかどうかを確認できます。
FILE_IS_TEXT
FILE_IS_TEXTは、ファイルをテキストとして開くための識別子です。このプロパティを使用することで、ファイルがテキスト形式で開かれているかをチェックすることができます。
定数「FILE_TXT」について
- FILE_TXT: この定数は16という値を持ち、単純なテキストファイルを示します。CSVファイルと同じですが、セパレーター(区切り文字)を考慮しません。このフラグはFileOpen関数で使用されます。
CSVファイルは通常、カンマなどの区切り文字を使用してデータを区切りますが、FILE_TXTフラグを使用してテキストファイルを開く場合、区切り文字を特別に扱わずにそのままテキストとして読み込みます。つまり、データを区切り文字で分割せず、一連の文字列として扱います。
FILE_IS_BINARY
FILE_IS_BINARYは、ファイルをバイナリとして開くための識別子です。このプロパティを使用することで、ファイルがバイナリ形式で開かれているかをチェックすることができます。
バイナリファイルについて
バイナリファイルは、テキストデータではなく、バイトデータ(文字列への変換を含まない)をそのまま格納するファイルです。プログラムの実行ファイルや画像、音声ファイルなどが含まれます。
定数「FILE_BIN」について
- FILE_BIN: この定数は4という値を持ち、バイナリ読み込み/書き込みモードを示します。このモードは、文字列への変換を含まないバイナリデータをそのまま読み書きするためのものです。このフラグはFileOpen関数で使用されます。
FILE_IS_CSV
FILE_IS_CSVは、ファイルをCSVとして開くための識別子です。このプロパティを使用することで、ファイルがCSV形式(FILE_CSVを参照)で開かれているかをチェックすることができます。
CSVファイルについて
CSV(Comma-Separated Values)ファイルは、データをカンマで区切って表形式で保存するファイル形式です。通常、表計算ソフトやデータベースなどで使用され、各行が1つのレコードを表し、カンマで区切られた各フィールドがデータ項目を表します。
定数「FILE_CSV」について
- FILE_CSV: この定数は8という値を持ち、ファイルをCSV形式で開くことを示します。このフラグはFileOpen関数で使用されます。
FILE_IS_ANSI
FILE_IS_ANSIは、ファイルがANSIエンコードであるかどうかを確認するための識別子です。このプロパティを使用することで、ファイルがANSI形式で開かれているかをチェックすることができます。
ANSIとは
ANSI(American National Standards Institute)は、アメリカ国家規格協会が策定した標準規格です。ANSIエンコードは、1バイト(8ビット)で文字を表現する文字エンコーディング方式で、特に英語などのラテン文字圏で広く使われます。
定数「FILE_ANSI」について
- FILE_ANSI: この定数は32という値を持ち、ANSIタイプ(1バイトのシンボル)の文字列を示します。このフラグはFileOpen関数で使用されます。
FILE_IS_READABLE
FILE_IS_READABLEは、開かれたファイルが読み込み可能であるかどうかを確認するための識別子です。このプロパティを使用することで、ファイルが読み込みモードで開かれているかをチェックすることができます。
定数「FILE_READ」について
- FILE_READ: この定数は1という値を持ち、ファイルを読み込むために開くことを示します。このフラグはFileOpen関数で使用されます。ファイルを開く際には、FILE_WRITEおよび/またはFILE_READの指定が必要です。
FILE_IS_WRITABLE
FILE_IS_WRITABLEは、開かれたファイルが書き込み可能であるかどうかを確認するための識別子です。このプロパティを使用することで、ファイルが書き込みモードで開かれているかをチェックすることができます。
定数「FILE_WRITE」について
- FILE_WRITE: この定数は2という値を持ち、ファイルを開く際に書き込みモードを指定することを示します。このフラグはFileOpen関数で使用されます。ファイルを開く際には、FILE_WRITEおよび/またはFILE_READの指定が必要です。
FileGetInteger関数の呼び出し方法について
FileGetInteger関数には2つの呼び出し方法があります。
1つ目の方法:ファイルハンドルを使用する
最初の方法は、ファイルを開くときにFileOpen関数で取得されるハンドルを使用してファイルのプロパティを取得する方法です。この方法では、ファイルのすべてのプロパティを取得することができます。
2つ目の方法:ファイル名を使用する
2つ目の方法は、ファイル名を指定してそのファイルのプロパティを取得する方法です。この方法で取得できるのは、以下の一般的なプロパティに限られます。
- FILE_EXISTS: 指定されたファイルが存在するかどうか
- FILE_CREATE_DATE: 指定されたファイルの作成日
- FILE_MODIFY_DATE: 指定されたファイルの更新日
- FILE_ACCESS_DATE: 指定されたファイルの最終アクセス日
- FILE_SIZE: 指定されたファイルのサイズ
これ以外のプロパティを取得しようとすると、エラーが返されます。
※詳細は下記のFileGetInteger関数に関する記事をご参照ください。