MQL – エラー4102(開かれたファイルが多すぎます)

こんにちは、みんな、
私はこのエラーに問題があります:
エラー番号:4102
ERR_TOO_MANY_OPENED_FILES

誰がそれを引き起こすのか知っていますか?これをスキップするために私がしなければならないことは何ですか?

thnx


docs.mql4.com/files/FileOpenを参照してください。

int FileOpen(文字列ファイル名、intモード、int区切り文字= ';')

入力および/または出力用にファイルを開きます。開かれたファイルのファイルハンドル、または-1(関数が失敗した場合)を返します。詳細なエラー情報を取得するには、GetLastError()関数を呼び出します。
注:ファイルはterminal_directoryexpertsfilesフォル 澄次弊賁膕箸砲茲襯謄好箸両豺腓terminal_directory esterfiles )またはそのサブフォルダーでのみ開くことができます。
FILE_BINモードとFILE_CSVモードを同時に使用することはできません。
FILE_WRITEがFILE_READと組み合わされない場合、長さ0のファイルが開かれます。ファイルにデータが含まれていても、それらは削除されます。既存のファイルにデータを追加する必要がある場合は、FILE_READ | FILEを組み合わせてオープンする必要があります。 FILE_WRITE
FILE_READがFILE_WRITEと組み合わされない場合、ファイルはすでに存在する場合にのみ開かれます。ファイルが存在しない場合は、FILE_WRITEモードを使用して作成できます。
実行可能モジュール内で同時に開くことができるファイルは32個以下です 。同じモジュール内で開かれたファイルのハンドルを他のモジュール(ライブラリ)に渡すことはできません。

パラメーター:
 $B%U%!%$%kL>ファイル名。
モードオープニングモード値は、FILE_BIN、FILE_CSV、FILE_READ、FILE_WRITEのいずれかまたは組み合わせになります。
デリミタ csvファイルの区切り文字デフォルトでは、 ';'記号が適用されます。
サンプル:
   intハンドル。 
handle = FileOpen( "my_data.csv"、FILE_CSV | FILE_READ、 ';');
if(handle <1)
{
Print( "ファイルmy_data.datが見つかりません。最後のエラーです"、GetLastError());
戻り値(false)。
}
FileIsLineEnding FileOpenHistory

rigthしかし私は32ファイルを開かなかった!

あなた(あなたのエキスパートアドバイザー)がファイル開いて 、「閉じる」ことを忘れないことがありますか?

確認しました。開くたびに閉じます。しかし、私はとにかくそれをもう一度チェックします。
存在しないファイルをFILE_READで開いて-1を返す可能性はありますか?
何も開いていないので、それを閉じることはできませんが、MAX_OPEN_FILES(32)カウンタから減少します。

おお、私はばかげている
あなたは正しかった
ファイルを開いたり閉じたりしているかどうかをチェックす 襪燭瓩離ウンタを追加し、fileClose()の前にどこかに戻った場所を見つけます。
ありがとう、

"絶対とは絶対言うな" ;)

どういたしまして。




739: https://www.mql5.com/en/forum/103094


Originally posted 2019-08-02 21:11:25.

Translate »