トップ  >  MQL4リファレンス  >  ファイル関数  >  FileOpen
スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
FileOpen


FileOpen


指定したフラグで、指定した名前のファイルを開きます



関数書式:
int  FileOpen(
   string  file_name,           // ファイル名
   int     open_flags,          // オープンフラグ
   short   delimiter  = ';',    // 区切り文字
   uint    codepage   = CP_ACP // コードページ
   );



■引数
引数名 初期値 I/O 詳細
file_name - In ファイル名(サブフォルダを含める事が可能)。
ファイルを書き込み用に開いた場合、指定した名前のファイルが無い場合サブフォルダ毎作成されます。
open_flags - In ファイルの操作モードを決定するフラグです。
詳細はファイルオープンフラグ列挙を参照。
delimiter ';' In TXTまたはCSVファイル内のセパレータ文字として使用します。
CSVファイルで指定しない場合は、デフォルトの';'が使用されます。
TXTファイルで指定しない場合は、セパレータは使用されません。

0が設定されている場合、セパレータは使用されません。
codepage CP_ACP In コードページ。
指定しない場合はANSIコードページが使用されます。


■戻り値
正常にファイルを開けた場合、ファイルデータにアクセスする為に使用するファイルハンドルを返します。
エラーが発生した場合は、INVALID_HANDLEを返します。


■備考
特殊記号の'\'を文字列で示す場合、ソースコード上では"\\"と書く必要があります。

サンプルソース:
void OnInit() {
    const string filename = "test.csv";  // ファイル名
           int    filehandle;             // ファイルハンドラ
    
    filehandle = FileOpen( filename , FILE_READ | FILE_WRITE | FILE_CSV );
}





ファイル書き出しのサンプル


サンプルソース(スクリプト):
#property strict // strictは絶対に削除しない事

static string RelativeFileAddress   = "";                // 相対ファイルアドレス
const  string WriteFolderName = "FileWriteTest";         // フォルダ名
const  string WriteFileName   = "WriteTestData.csv";     // ファイル名

//+------------------------------------------------------------------+
//| スクリプトプログラムスタート
//+------------------------------------------------------------------+
void OnStart()
{
    SetPath();  // パス設定
   
}


//+------------------------------------------------------------------+
//| パス設定
//+------------------------------------------------------------------+
void SetPath()
{
    // 相対ファイルアドレスセット
    RelativeFileAddress = StringFormat(
                   "%s\\%s" ,
                   WriteFolderName , 
                   WriteFileName
               );

    int filehandle;                    // ファイルハンドラ

    // 書き込むファイルを開く(存在しなければ作成される)
    filehandle = FileOpen(
            RelativeFileAddress,    // ファイル名
            FILE_WRITE | FILE_CSV,  // ファイル操作モードフラグ
            ','                     // セパレート文字コード
    );

    if ( filehandle == INVALID_HANDLE ) { // ファイルオープンエラー
        printf( "[%d]ファイルオープンエラー:%s" , __LINE__ , RelativeFileAddress );
    } else {
        WriteData(filehandle);      // ファイル書き出し

        FileClose(filehandle);      // ファイルハンドラクローズ(絶対に忘れない事)
        // FileCloseを忘れると開いたMT4以外で対象ファイルが操作出来なくなります
    }

}


//+------------------------------------------------------------------+
//| データ書き出し
//+------------------------------------------------------------------+
void WriteData( int in_filehandle ){
    
    FileWrite( in_filehandle , "test1" );
    FileWrite( in_filehandle , "test2" , "test3" );
    FileWrite( in_filehandle , "test4" );
    
}



■結果







スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system