入出力定数


ファイルを開く際のフラグ

ファイルを開く際のフラグはファイルのアクセスモードを指定します。フラグは下記の様に定義されます。

識別子

説明

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.

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