void OnInit() { Print("ローカルディレクトリ:",TerminalInfoString( TERMINAL_DATA_PATH) ); Print("共通ディレクトリ :",TerminalInfoString( TERMINAL_COMMONDATA_PATH ) ); }
関数 | 詳細 |
FileFindFirst | 指定したフィルタでディレクトリ内のファイルを検索 |
FileFindNext | FileFindFirst()関数の検索を続けます |
FileFindClose | 検索ハンドル閉じます |
FileOpen | 指定した名前とフラグでファイルを開きます |
FileDelete | 指定したファイルを削除します |
FileFlush | 入力/出力ファイルバッファに残っている全データをディスクへ書き込みます |
FileGetInteger | ファイルプロパティ(int)を取得します |
FileIsEnding | ファイルの終端判定 |
FileIsLineEnding | ファイルの行末判定 |
FileClose | ファイルを閉じます |
FileIsExist | ファイルの存在有無チェック |
FileCopy | ファイルコピー |
FileMove | ファイルの移動・名前変更 |
FileReadArray | BIN形式ファイルの配列読込み(文字列は読み込まない) |
FileReadBool | CSV形式ファイルの現在位置から読込み区切りまでの文字列を読み取り、
読み取った文字列をbool型データに変換します。 |
FileReadDatetime | CSV形式ファイルから"YYYY.MM.DD HH:MI:SS","YYYY.MM.DD","HH:MI:SS"のいずれかの形式の文字列を読み取り、
datetime型データに変換します。 |
FileReadDouble | 現在位置のファイルポインタからdouble値を読み取ります |
FileReadFloat | 現在位置のファイルポインタからfloat値を読み取ります |
FileReadInteger | 現在位置のファイルポインタからint,short,char値を読み取ります |
FileReadLong | 現在位置のファイルポインタからlong値を読み取ります |
FileReadNumber | CSV形式ファイルの現在位置から読込み区切りまでの文字列を読み取り、
読み取った文字列をdouble型データに変換します。 |
FileReadString | 現在位置のファイルポインタから文字列(string)を読み取ります |
FileReadStruct | BIN形式ファイルを現在位置のファイルポインタから構造体データ読み取ります |
FileSeek | 指定した位置を基準にして、ファイルポインタを指定したバイト数分移動します。 |
FileSize | ファイルサイズを返します |
FileTell | ファイルポインタの現在位置を返します |
FileWrite | CSVまたはBINファイルにデータを書き込みます |
FileWriteArray | BIN形式ファイルに配列データ内容を書き込みます(文字列を除く) |
FileWriteDouble | BIN形式ファイルにdouble型データを(現在のファイルポインタから)書き込みます |
FileWriteFloat | BIN形式ファイルにfloat型データを(現在のファイルポインタから)書き込みます |
FileWriteInteger | BIN形式ファイルにint型データを(現在のファイルポインタから)書き込みます |
FileWriteLong | BIN形式ファイルにlong型データを(現在のファイルポインタから)書き込みます |
FileWriteString | CSVまたはBIN形式ファイルに文字列(string)データを(現在のファイルポインタから)書き込みます。 |
FileWriteStruct | BIN形式ファイルに構造体データの値を(現在のファイルポインタから)書き込みます |
FolderCreate | "Files"ディレクトリ内に新しいフォルダを作成します |
FolderDelete | 指定したディレクトリを削除します。フォルダが空で無い場合は削除出来ません |
FolderClean | 指定したフォルダ内のファイルを全て削除します |
FileOpenHistory | "history"ディレクトリ(またはそのサブフォルダ)のファイルを開きます |
#property strict // strictは絶対に削除しない事 #property script_show_inputs input string InpFilter="*"; // 検索フィルタ //+------------------------------------------------------------------+ //| スクリプトプログラムスタート //+------------------------------------------------------------------+ void OnStart(){ string file_name; int i=1; long search_handle; int errorcode; printf("%sフィルタでローカルディレクトリを検索。",InpFilter); search_handle = FileFindFirst(InpFilter,file_name,0); // ローカルディレクトリを検索 if ( search_handle != INVALID_HANDLE) { do { ResetLastError(); // エラーコードリセット FileIsExist(file_name); // 見つかったファイル名で存在チェック errorcode = GetLastError(); // 指定した名前がディレクトリの場合はエラーコード5019を返します PrintFormat("%dつ目 : %s名 = %s", i, errorcode== ERR_FILE_IS_DIRECTORY ? "ディレクトリ" : "ファイル" ,file_name); i++; } while( FileFindNext(search_handle,file_name) == true ); // 次の検索を行い、見つかったら処理を繰り返す FileFindClose(search_handle); // ファイルハンドラクローズ } else { Print("対象ファイル無し"); } }
*フィルタでローカルディレクトリを検索。 1つ目 : ファイル名 = entry_access.bin 2つ目 : ファイル名 = FXCM_ECOFILE.htm 3つ目 : ファイル名 = test_file.txt 4つ目 : ディレクトリ名 = test_folder\ *.txtフィルタでローカルディレクトリを検索。 1つ目 : ファイル名 = test_file.txt
#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" ); }