ファイル定数(FILE_○○)
ファイル定数は、プログラムでファイルを開くときに使用されます。
ファイルを開くとき、いくつかの条件を指定することができます。
条件を指定することで、セキュリティを高めたり、ファイルを正しく読み込むことができるようになります。
ファイル定数は以下の関数で使用されます。
- FileOpen関数:ファイルを開く
- FileCopy関数:ファイルをコピーする
- FileMove関数:ファイルを移動させる
- FileIsExist関数:ファイルの存在を確認する
ファイル定数(FILE_○○)
| 定数 | 説明 |
| FILE_READ | ファイルを読み込み可能で開く |
| FILE_WRITE | ファイルを書き込み可能で開く |
| FILE_BIN | バイナリファイルを開く |
| FILE_CSV | CSVファイルを開く |
| FILE_TXT | テキストファイルを開く |
| FILE_ANSI | ANSIファイルを開く |
| FILE_UNICODE | UNICODEファイルを開く |
| FILE_SHARE_READ | 複数のプログラムから読み込み可能で開く |
| FILE_SHARE_WRITE | 複数のプログラムから書き込み可能で開く |
| FILE_REWRITE | ファイルを上書き可能で開く |
| FILE_COMMON | ファイルパス(\Terminal\Common\Files) |
ファイル定数(FILE_○○)の使い方
ファイル定数は、主にFileOpen関数で使用します。
ファイルを開くときの条件を指定するために、ファイル定数を使います。
また、条件は複数指定することが可能です。
複数指定する場合は、FILE_READ | FILE_WRITE | FILE_CSV のように「|」でつなぐように記述してください。
例えば、以下のように使用します。
void OnInit() {
//ファイル名
const string filename = "test.csv";
//ファイルハンドラ
int filehandle;
//ファイルを開く(読み込み可能・書き込み可能・CSVファイル)
filehandle = FileOpen( filename , FILE_READ | FILE_WRITE | FILE_CSV );
}上記のように記述することで、ファイルを開くときに条件を指定することができます。
プログラム例
以下は、ファイル定数を使ってCSVファイルにデータを書き込み、その後読み込むサンプルプログラムです。
//+------------------------------------------------------------------+
//| ファイル定数を使ったサンプルプログラム |
//+------------------------------------------------------------------+
void OnInit()
{
const string filename = "sample_data.csv";
int filehandle;
//--- CSVファイルに書き込み ---
filehandle = FileOpen(filename, FILE_WRITE | FILE_CSV, ",");
if(filehandle != INVALID_HANDLE)
{
// ヘッダーを書き込む
FileWrite(filehandle, "日時", "通貨ペア", "Bid", "Ask");
// データを書き込む
FileWrite(filehandle, TimeToStr(TimeCurrent()), Symbol(), Bid, Ask);
// ファイルを閉じる
FileClose(filehandle);
Print("ファイルへの書き込みが完了しました。");
}
else
{
Print("ファイルを開けませんでした。エラーコード: ", GetLastError());
}
//--- CSVファイルから読み込み ---
filehandle = FileOpen(filename, FILE_READ | FILE_CSV, ",");
if(filehandle != INVALID_HANDLE)
{
// ファイルの終わりまで読み込む
while(!FileIsEnding(filehandle))
{
string col1 = FileReadString(filehandle);
string col2 = FileReadString(filehandle);
string col3 = FileReadString(filehandle);
string col4 = FileReadString(filehandle);
Print(col1, " | ", col2, " | ", col3, " | ", col4);
}
// ファイルを閉じる
FileClose(filehandle);
Print("ファイルの読み込みが完了しました。");
}
else
{
Print("ファイルを開けませんでした。エラーコード: ", GetLastError());
}
//--- FILE_COMMONを使った例 ---
// 共通フォルダにテキストファイルを作成
filehandle = FileOpen(filename, FILE_WRITE | FILE_TXT | FILE_COMMON);
if(filehandle != INVALID_HANDLE)
{
FileWriteString(filehandle, "共通フォルダに書き込みました。\r\n");
FileWriteString(filehandle, "このファイルは複数のターミナルからアクセスできます。\r\n");
FileClose(filehandle);
Print("共通フォルダへの書き込みが完了しました。");
}
//--- FILE_SHARE_READを使った例 ---
// 他のプログラムからも読み込み可能な状態でファイルを開く
filehandle = FileOpen(filename, FILE_READ | FILE_CSV | FILE_SHARE_READ, ",");
if(filehandle != INVALID_HANDLE)
{
Print("共有読み込みモードでファイルを開きました。");
FileClose(filehandle);
}
}上記のプログラムでは、以下の3つの処理を行っています。
- FILE_WRITE | FILE_CSV を使ってCSVファイルにデータを書き込む
- FILE_READ | FILE_CSV を使ってCSVファイルからデータを読み込む
- FILE_WRITE | FILE_TXT | FILE_COMMON を使って共通フォルダにテキストファイルを作成する
ファイル定数を組み合わせることで、用途に応じたファイル操作が可能になります。




