MT4 MT4 実行時エラー
4102
- 定数名
ERR_TOO_MANY_OPENED_FILES- メッセージ
too many opened files- 意味
- 開いているファイルが多すぎる
MT4エラー4102とは
同時に開いているファイルが多すぎるときのエラーです。FileOpen() したファイルを FileClose() で閉じ忘れていると、開いたままのファイルが増えていきます。
MT4エラー4102の主な原因
- FileOpen() のあと、途中の return などで FileClose() を通らない経路がある
- OnTick() で毎回ファイルを開き、閉じていない
MT4エラー4102の対処法
- FileOpen() したら、どの経路でも必ず FileClose() を呼ぶようにする
- 頻繁に書き込むファイルは、開いたままにして FileFlush() で保存する方法も検討する
コード例(MQL4)
// MQL4\Files 内の CSV を読む(エラー4103・5004 対策)(MQL4)
void ReadCsv()
{
string name = "signals.csv"; // フルパスではなく、MQL4\Files からの相対パス
if(!FileIsExist(name))
{
Print(name, " が MQL4\\Files にありません");
return;
}
int h = FileOpen(name, FILE_READ | FILE_CSV | FILE_SHARE_READ, ',');
if(h == INVALID_HANDLE)
{
Print("FileOpen error ", GetLastError());
return;
}
while(!FileIsEnding(h)) // 最後まで読んだら終了(4099 を出さない)
{
string col1 = FileReadString(h);
Print(col1);
}
FileClose(h);
}MetaEditor(MT4)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












