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の共有フォルダで開かれます。