ファイルを開く際のフラグ
ファイルを開く際のフラグはファイルのアクセスモードを指定します。フラグは下記の様に定義されます。
識別子 | 値 | 説明 |
FILE_READ | 1 | ファイルは読み込むために開かれます。フラグは FileOpen() で使用されます。ファイルを開く際には FILE_WRITE 及び/または FILE_READ 仕様が必要です。 |
FILE_WRITE | 2 | ファイルは書き込むために開かれます。フラグは FileOpen() で使用されます。ファイルを開く際には FILE_WRITE 及び/または FILE_READ 仕様が必要です。 |
FILE_BIN | 4 | (文字列への変換文字列を含まない)バイナリ読み込み/書き込みモードです。フラグは FileOpen() で使用されます。 |
FILE_CSV | 8 | CSV ファイル(全ての要素が Unicode または ANSI の適切な型の文字列に変換されセパレータで区切られています)。フラグは FileOpen() で使用されます。 |
FILE_TXT | 16 | 単純なテキストファイル(CSV ファイルと同じですが、セパレータを考慮しません)。フラグは FileOpen() で使用されます。 |
FILE_ANSI | 32 | ANSIタイプ( 1 バイトのシンボル)の文字列。フラグは FileOpen() で使用されます。 |
FILE_UNICODE | 64 | UNICODE タイプ( 2 バイトのシンボル)の文字列。フラグは FileOpen() で使用されます。 |
FILE_SHARE_READ | 128 | 複数のプログラムからの読み込みのための共通のアクセス。フラグは FileOpen() で使用されますがファイルを開く時の FILE_WRITE 及び/または FILE_READ フラグは必要です。 |
FILE_SHARE_WRITE | 256 | 複数のプログラムからの書き込みのための共通のアクセス。フラグは FileOpen() で使用されますがファイルを開く時の FILE_WRITE 及び/または FILE_READ フラグは必要です。 |
FILE_REWRITE | 512 | FileCopy() 及び FileMove() 関数でのファイル上書きを可能にします。ファイルが存在し、書き込み用に開かれる必要があります。さもなければ、ファイルは開かれません。 |
FILE_COMMON | 4096 | 全てのクライアント端末の共有フォルダ内のファイルパス \Terminal\Common\Files。フラグは FileOpen()、FileCopy()、FileMove() 及び FileIsExist() 関数で使用されます。 |
ファイルを開く時には、1 つ以上のフラグを指定することが出来ます。これは、フラグの組み合わせです。フラグの組み合わせは、列挙されたフラグの間に配置され( | )の論理和の符号を使用して書かれます。例えば、ファイルを CSV フォーマットで読み書きするために開くには、FILE_READ|FILE_WRITE|FILE_CSV の組み合わせを指定します。
例:
int filehandle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_CSV); |
読み書きのフラグの指定には、いくつかの特定の機能があります。
- FILE_READ が指定されると、既存するファイルを開く試みがなされます。ファイルが存在しない場合、ファイルを開く操作は失敗し、新しいファイルは作成されません。
- FILE_READ|FILE_WRITE – 指定された名称のファイルが存在しない場合は、新しいファイルが作成されます。
- FILE_WRITE – ファイルは、ゼロサイズで再作成されます。
ファイルを開く際には FILE_WRITE 及び/または FILE_READ が必要です。
開いているファイルの読み込みの種類を定義するフラグには優先順位があります。最優先されるフラグは FILE_CSV 、その次が FILE_BIN で、FILE_TXT の優先度は最も低いです。複数のフラグ(FILE_TXT|FILE_CSV または FILE_TXT|FILE_BIN または FILE_BIN|FILE_CSV)が同時に指定された場合、最高の優先度のフラグが使用されます。
エンコーディングの種類を定義するフラグにも優先順位があります。FILE_UNICODE の優先度は FILE_ANSI より高いです。なので、もし FILE_UNICODE|FILE_ANSI が指定された場合 FILE_UNICODE が使用されます。
FILE_UNICODE と FILE_ANSI のどちらもが指定されない場合には、FILE_UNICODE が暗示されます。FILE_CSV、FILE_BIN、FILE_TXT の 1 つも指定されない場合には、FILE_CSV が暗示されます。
もしファイルがテキストとして読まれるために開かれれ(FILE_TXT または FILE_CSV)ファイルの始めに特別な 2 バイトの印 0xff,0xfe がある場合、FILE_ANSI が指定されたとしても、エンコーディングフラグは FILE_UNICODE となります。
参照
ファイル関数
ファイルプロパティ
FileGetInteger() 関数はファイルプロパティの取得に使用されます。ENUM_FILE_PROPERTY_INTEGER 列挙からの必要なプロパティの識別子は、呼び出し時に渡されます。
ENUM_FILE_PROPERTY_INTEGER
ID | ID 説明 |
FILE_EXISTS | ファイルの存在をチェック。 |
FILE_CREATE_DATE | 作成日。 |
FILE_MODIFY_DATE | 最終更新日。 |
FILE_ACCESS_DATE | 最終アクセス日。 |
FILE_SIZE | ファイルのバイトサイズ。 |
FILE_POSITION | ファイル内のポインタ位置。 |
FILE_END | ファイル終了の記号を取得。 |
FILE_LINE_END | 行終了の記号を取得。 |
FILE_IS_COMMON | ファイルを全ての端末の共有フォルダ( FILE_COMMON を参照)で開きます。 |
FILE_IS_TEXT | ファイルをテキスト( FILE_TXT を参照)として開きます。 |
FILE_IS_BINARY | ファイルをバイナリ( FILE_BIN を参照)として開きます。 |
FILE_IS_CSV | ファイルを CSV( FILE_CSV を参照)として開きます。 |
FILE_IS_ANSI | ファイルを ANSI( FILE_ANSI を参照)として開きます。 |
FILE_IS_READABLE | 開かれたファイルが読み込み可能( FILE_READ を参照)。 |
FILE_IS_WRITABLE | 開かれたファイルが書き込み可能( FILE_WRITE を参照)。 |
FileGetInteger() には 2 つの呼び出し方があります。1 つ目はファイルプロパティの取得に使用され、FileOpen() 関数でファイルを開く際に取得されるハンドルが指定されます。これで、ファイルの全てのプロパティの取得が出来ます。
2 番目の呼び出しでは FileGetInteger() はファイル名でファイルのプロパティの値を返します。このオプションを使用して取得出来るのは次の一般的なプロパティのみです。
- FILE_EXISTS – 指定された名称のファイルの存在
- FILE_CREATE_DATE – 指定された名称のファイルの作成日
- FILE_MODIFY_DATE – 指定された名称のファイルの更新日
- FILE_ACCESS_DATE – 指定された名称のファイルの最終アクセス日
- FILE_SIZE – 指定された名称のファイルサイズ
上記に指定された以外のプロパティを取得しようとすると FileGetInteger() の2 番目の呼び出しオプションは、エラーを返します。
ファイル内の位置
ファイル関数の多くは、データの読み込み/書き込み動作に関連します。同時に、FileSeek() を使用すれば、次の読み込みまたは書き込み操作が実行されるファイル内の位置にファイルポインタの位置を指定することが出来ます。ENUM_FILE_POSITION 列挙は、次の演算のためのバイトの相対的なシフトを指定出来る有効なポインタの位置を含みます。
ENUM_FILE_POSITION
識別子 | 説明 |
SEEK_SET | ファイルの始め。 |
SEEK_CUR | ファイルポインタの現在位置。 |
SEEK_END | ファイルの終わり。 |
参照
FileIsEnding、FileIsLineEnding
文字列の変換操作でのコードページの使用
string 変数を char 型 の変数と相互に変換する場合、MQL5 は、デフォルトでは、Windows オペレーティングシステムの現在の ANSI エンコーディング(CP_ACP)を使用します。異なる種類のエンコーディングは CharArrayToString()、StringToCharArray() 及び FileOpen() 関数の追加パラメータとして指定することが出来ます。
表は、いくつかの最も人気のあるコードページのための内蔵された定数を示します。他のコードページは、ページに対応するコードで指定することが出来ます。
コードページの内蔵定数
定数 | 値 | 説明 |
CP_ACP | 0 | 現在の Windows ANSI コードページ。 |
CP_OEMCP | 1 | 現在のシステムの OEM コードページ。 |
CP_MACCP | 2 | 現在のシステムの Macintosh コードページ。 注意事項:現代の Macintosh コンピュータはエンコーディングに Unicode を使用しているため、この値は、主に以前に作成したプログラムコードで使用され、今は使用されていません。 |
CP_THREAD_ACP | 3 | 現在のスレッドの Windows ANSI コードページ。 |
CP_SYMBOL | 42 | シンボルコードページ。 |
CP_UTF7 | 65000 | UTF-7 コードページ。 |
CP_UTF8 | 65001 | UTF-8 コードページ。 |
参照
クライアント端末プロパティ
メッセージボックスダイアログウィンドウ定数
このセクションは MessageBox() 関数のリターンコードを含みます。メッセージウィンドウに「キャンセル」ボタンがあって、ESCキーまたは「キャンセル」ボタンが押された場合、この関数は IDCANCEL を返します。メッセージウィンドウに「キャンセル」ボタンがない場合、ESC を押すことで変化はありません。
定数 | 値 | 説明 |
IDOK | 1 | 「OK」ボタンが押されました。 |
IDCANCEL | 2 | 「キャンセル」ボタンが押されました。 |
IDABORT | 3 | 「中止(A)」ボタンが押されました。 |
IDRETRY | 4 | 「再試行(R)」ボタンが押されました。 |
IDIGNORE | 5 | 「無視(I)」ボタンが押されました。 |
IDYES | 6 | 「はい」ボタンが押されました。 |
IDNO | 7 | 「いいえ」ボタンが押されました。 |
IDTRYAGAIN | 10 | 「再試行する」ボタンが押されました。 |
IDCONTINUE | 11 | 「続行(C)」ボタンが押されました。 |
MessageBox() 関数のメインフラグはダイアログウィンドウの内容と動作を定義します。この値は、次のフラグのグループの組み合わせであることが出来ます。
定数 | 値 | 説明 |
MB_OK | 0x00000000 | メッセージウィンドウには、「OK」ボタンが 1 つあります。(デフォルト)。 |
MB_OKCANCEL | 0x00000001 | メッセージウィンドウには、「OK」と「キャンセル」の 2 つのボタンがあります。 |
MB_ABORTRETRYIGNORE | 0x00000002 | メッセージウィンドウには、「中止(A)」「再試行(R)」「無視(I)」の 3 つのボタンがあります。 |
MB_YESNOCANCEL | 0x00000003 | メッセージウィンドウには、「はい」、「いいえ」と「キャンセル」の 3 つのボタンがあります。 |
MB_YESNO | 0x00000004 | メッセージウィンドウには、「はい」と「いいえ」の 2 つのボタンがあります。 |
MB_RETRYCANCEL | 0x00000005 | メッセージウィンドウには、「再試行(R)」と「キャンセル」の 2 つのボタンがあります。 |
MB_CANCELTRYCONTINUE | 0x00000006 | メッセージウィンドウには、「キャンセル」「再試行(R)」「続行(C)」の 3 つのボタンがあります。 |
メッセージウィンドウにアイコンを表示するには、追加のフラグを指定する必要があります。
定数 | 値 | 説明 |
MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND | 0x00000010 | STOP アイコン。 |
MB_ICONQUESTION | 0x00000020 | はてなマークのアイコン。 |
MB_ICONEXCLAMATION, MB_ICONWARNING | 0x00000030 | 感嘆/警告記号アイコン。 |
MB_ICONINFORMATION, MB_ICONASTERISK | 0x00000040 | 丸で囲まれた i サイン。 |
デフォルトボタンは、次のフラグによって定義されています。
定数 | 値 | 説明 |
MB_DEFBUTTON1 | 0x00000000 | MB_DEFBUTTON2、MB_DEFBUTTON3 及び MB_DEFBUTTON4 が指定されてない場合、最初のボタンである MB_DEFBUTTON1 がデフォルトです。 |
MB_DEFBUTTON2 | 0x00000100 | 2 番目のボタンがデフォルト。 |
MB_DEFBUTTON3 | 0x00000200 | 3 番目のボタンがデフォルト。 |
MB_DEFBUTTON4 | 0x00000300 | 4 番目のボタンがデフォルト。 |
Originally posted 2019-07-29 22:50:36.