FileOpen 関数
この関数は、指定したファイルとフラグ (設定) でファイルを開きます。ファイルが存在しない時は、新規にファイルが作成されます。
作成されたファイルは、使用しているMT4のメニューのファイルから「データフォルダを開く」のフォルダの「MQL4」→「Files」フォルダの中に保存されます。
ファイル名にサブフォルダを含めた場合は「Files」フォルダの中にサブフォルダを作成してその中にファイルが作成されて保存されることになります。
FileOpen関数で作成、開いたファイルは FileClose関数で閉じておかないと他で操作ができなくなるのでご注意ください。
データ型と構成・戻り値
int FileOpen(①, ②, ③, ④);
戻り値は、ファイルが正常に開かれた場合、関数はファイルハンドルを返します。このファイルハンドルは、ファイルデータへのアクセスに使用されます。失敗した場合は INVALID_HANDLE(-1)を返します。
引数 [4]
FileOpen関数は 4個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | file_name | string | - | - | 開くファイル名。 ファイルの名前にサブフォルダを含めることができます。この場合、ファイルが書き込み用でサブフォルダが存在しない時はサブフォルダが作成されます。 |
② | open_flags | int | - | - | ファイルの操作モードのフラグ (設定) です。複数を組み合わせて使うことができます。ファイルオープニングフラグから選択してください。 |
③ | delimiter | short | - | ‘;’ | txt または csv ファイルで使用される区切り文字。 csvファイルで区切り文字が指定されていない場合、デフォルトの区切り文字は「;」です。 txtファイルで区切り文字が指定されていない場合、区切り文字は使用されません。 「0」の時は、区切り文字は使用されません。 |
④ | codepage | uint | - | CP_ACP | コードページの値。 |
使用例
FileOpen関数によるファイルの作成
FileOpen関数を使って新規にファイルを作成します。作成するファイルは「test1.csv」と「test2.txt」とします。「test2.txt」はサブフォルダを作成してその中に保存させます。
コード
// FileOpen関数によるファイルの作成
#property strict
void OnInit() {
string filename1 = "test1.csv"; // ①ファイル名
string filename2 = "test\\test2.txt"; // ②ファイル名
int fhandle1, fhandle2; // ファイルハンドル
fhandle1 = FileOpen(filename1, FILE_READ | FILE_WRITE | FILE_CSV );
fhandle2 = FileOpen(filename2, FILE_READ | FILE_WRITE | FILE_TXT );
Print(filename1, "のファイルハンドル:", fhandle1);
Print(filename2, "のファイルハンドル:", fhandle2);
FileClose(fhandle1);
FileClose(fhandle2);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
MT4のメニューのファイルから「データフォルダを開く」のフォルダの「MQL4」→「Files」フォルダの中を開くとそれぞれのファイルが作成されていることが確認できます。