注文が開いているときにファイルに書き込むことができない

 

私は、ログファイルにいくつかの情報を書き込むEAを持っています。ある時点でそれは注文を開くことを決定し、これが起こるとき、EAはもうファイルに書き込まれません、私はちょうど得られます。

FileWrite'関数の パラメータ1として無効な整数値です。

スクリーンショットを添付します:注文を開くとき、ファイルハンドルは変化しませんが、何らかの理由でそれ以上ファイルを開くことができません。助けてください!

ログエラー

 
代わりに関連するコードを添付する必要があります。コードベースにあるfile_writeの 例を見てください。ドキュメントでエラーメッセージの理由を確認してください。
 

ありがとうございます。コードは問題なく動作し、EAがロードされたときにファイルを作成し、その後、すべてのティックで 私はファイルを開き、ファイルに大量の情報を入れて、それを閉じます。しかし、注文を開くとすぐにそれはもう動作しません。

あちこち検索してみましたが、このエラーに関する情報は見つからず、同じ問題を抱えた人も見つからず、同じエラーを持つ人も見つけられませんでした。

"TimeToNumber関数のパラメータ1として無効な整数値"

しかし、私は何も見つけることができません。

"FileWrite関 数のパラメータ1として無効な整数値 "です。

 
favosys:

ありがとうございます。コードは問題なく動作し、EAがロードされたときにファイルを作成し、その後、すべてのティックで私はファイルを開き、ファイルに大量の情報を入れて、それを閉じます。しかし、注文を開くとすぐにそれはもう動作しません。

あちこち検索してみましたが、このエラーに関する情報は見つからず、同じ問題を抱えた人も見つからず、同じエラーを持つ人も見つけられませんでした。

"TimeToNumber関数のパラメータ1として無効な整数値"

しかし、私は何も見つけることができません。

"FileWrite関 数のパラメータ1として無効な整数値 "です。

ハンドルが無効です/int ではありません ... コードを修正してください。 おそらく、グローバルに宣言された変数と同じ名前のローカルに宣言された変数を使用していて、一方がintでもう一方がintでないのでしょう。 コードを拝見しないと何とも言えません。
 

これは、init関数の コードです。

int init()

  {

//----

   File_Name = StringConcatenate(Name_of_file, " - ", Symbol(), " - ", TimeToStr(TimeLocal(),TIME_DATE), " - ", TimeHour(TimeLocal()), ".", TimeMinute(TimeLocal()), ".", TimeSeconds(TimeLocal()), ".txt");

   Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//File opening

   if(Handle==-1)                      // File opening fails

     {

      Alert("An error while opening the file. ",// Error message

              "May be the file is busy by the other applictiom");

      PlaySound("Bzrrr.wav");          // Sound accompaniment

      return;                          // Exir start()      

     }

     FileClose( Handle );

//----

   return(0);

  } 

これは単にファイルを作成しただけです。

それからstart関数でファイルを開いています。

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_WRITE,";");//File opening
    //Handle = 1;
    Print("Handle: ", Handle);
   if(Handle==-1)                      // File opening fails
     {
      Alert("An error while opening the file. ",// Error message
              "May be the file is busy by the other applictiom");
      PlaySound("Bzrrr.wav");          // Sound accompaniment
      return;                          // Exir start()      
     }
   FileSeek(Handle, 0, SEEK_END);

でファイルを開いて、その中にいろいろと書き込んでいます。

Qnt_Symb=FileWrite(Handle,"**** STARTING TICK ", Symbol(), ": ", TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS), " ****");
Qnt_Symb=FileWrite(Handle,"************************************************************"); 

そして最後にファイルを閉じます。

Qnt_Symb=FileWrite(Handle,"***************************");      
Qnt_Symb=FileWrite(Handle,"**** END TICK ", Symbol(), " ****");        
FileClose( Handle );
//----
   return(0);

これで終わりです。

ありがとうございました。

 
favosys:

これは、init関数のコードです。

これは単にファイルを作成しただけです。

それからstart関数でファイルを開いています。

でファイルを開いて、その中にいろいろと書き込んでいます。

そして最後にファイルを閉じます。

これで終わりです。

ありがとうございました。

コード内の ( Ctrl + F )Handle を検索して、他の宣言を見つけましたか? start() の中で、最後以外にリターンを持っていますか? CSV ファイルが完全かどうかを確認しましたか? 芸術が欠けていれば、何が実行されているか、されていないかについて、何らかのヒントを与えることができます。
 
Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//File opening
 Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_WRITE,";");//File opening
最後の引数が無効です -int ではありません
 
RaptorUK:
コード内の ( Ctrl + F )Handle を検索して他の宣言を見つけましたか? start() の中で最後以外にリターンをしていますか? CSV ファイルが完全かどうか見てみましたか? もし art が見つからないなら、何が実行されているか、されていないかのヒントが得られるかもしれませんね。


こんにちは、Raptor UKです。

他のHandleデカールはありません

他のリターンは、Handleが-1であれば、ファイルを開くときにそこに表示されるものだけです。

ファイルが完全である場合、あなたが何をすべきかわからない。オーダーが開かれたとき、すべての開始関数が 処理され、ファイルには最後の行、** END TICKET ** 行があるので、最後まで行ってファイルを閉じたことがわかります。

アートがないとはどういう意味ですか?申し訳ありませんが、アートが何なのかわかりません。

 
WHRoeder:
最後の引数が無効です -intではありません


こんにちは、WHRoederです。

どういうことですか?FileOpenの最後の引数は

デリミタ - csvファイルのデリミタ文字。デフォルトでは、';'記号が適用されます。

乾杯

 
favosys:


こんにちは、Raptor UKです。

他のHandleデカールはありません

他のリターンは、Handleが-1であれば、ファイルを開くときにそこに表示されるものだけです。

ファイルが完全である場合、あなたが何をすべきかわからない。オーダーが開かれたとき、すべての開始関数が処理され、ファイルには最後の行、** END TICKET ** 行があるので、最後まで行ってファイルを閉じたことがわかります。

アートがないとはどういう意味ですか?申し訳ありませんが、アートが何であるかわかりません。

すみません、"parts" ......あなたは、**** END TICK USDCHF ****のメッセージを受け取りますか? それともその前に終わりますか?
 
favosys:


こんにちは、WHRoederです。

どういうことでしょうか?FileOpenの最後の引数は

デリミタ- csvファイルのデリミタ文字です。デフォルトでは、';'記号が適用されます。

エラーメッセージにあるパラメータ 1はファイルハンドルではないでしょうか?
理由: