FileOpen()関数

FileOpen()関数は、指定したファイル名とファイル用フラグでファイルを開きます。

FileOpen()関数について

FileOpen()関数の()括弧内は次のように指定します。

FileOpen(ファイル名, オープンフラグ組み合わせ, 区切り文字, コードページ)

ファイル名
ファイル名を文字列で指定します。サブフォルダを含めることができます。
書き込みモードでファイルを開いた場合は、サブフォルダ共に新規作成または上書きされます。

オープンフラグ
ファイルの動作モードを決めるフラグの組み合わせです。
フラグは次のように定義されていて、|(縦線)でつなげて組み合わせます。

FILE_READ 読み込みモードで開く
FILE_WRITE 書き込みモードで開く
FILE_BIN バイナリーモード(文字列変換しない)
FILE_CSV CSVファイルタイプ(UnicodeまたはANSI文字列に変換、区切り文字で区切る)
FILE_TXT シンプルなテキストタイプ(FILE_CSVと同じですが、区切り文字無しが可能)
FILE_ANSI ANSI文字列(1バイトの文字)
FILE_UNICODE UNICODE文字列(2バイトの文字)
FILE_SHARE_READ 複数のプログラムから共有読み込みするモード
FILE_SHARE_WRITE 複数のプログラムから共有書き込みするモード
FILE_COMMON 全てのMT4で共有するフォルダ「¥Terminal¥Common¥Files」で開くモード

区切り文字
txtまたはcsvファイルの区切りとして指定します。csvファイルで指定しない場合;(セミコロン)で区切られます。txtファイルで指定しない場合は区切り文字無しとなります。また、0を指定した場合、区切り文字無しとなります。

コードページ
文字コードページを指定します。指定しない場合は、ANSIコードページとなります。

戻り値

ファイルが正常に開かれると、FileOpen()関数はファイルハンドルを返します。このハンドルは、ファイルデータへのアクセスに使用されます。失敗した場合はINVALID_HANDLE(-1)を返します。

備考

セキュリティ上の理由から、ファイル操作はMQL4言語で厳密に制御されています。MQL4でファイル操作されるファイルは、ファイルサンドボックスの外に置くことはできません。

ファイルは、ターミナルのデータフォルダ内の MQL4 ¥ Files(テスターの場合、tester ¥ files)で開かれます。オープンフラグの中でFILE_COMMONが指定されている場合、ファイルはすべてのMetaTrader4の共有フォルダで開かれます。