エラー、バグ、質問 - ページ 2233

 
A100:

そして、あなたは削除することはできません - それはEAのコードであるため、またはあなたは他の人のコードの行の数千人が無関係である理解したいですか - 唯一の時間遅延の結果?

上にあげた課題を実行し、その結果を国民に報告する。

なぜ間違ったコードを繰り返さなければならないのか?なぜ未知の.exファイルを使いたがるのか?

もし、FILE_SHARE_READ|FILE_SHARE_WRITE フラグでファイルを開く際にエラーが発生した場合は、余計な人為的なエラーを発生させずにこれらの問題を再現するように親切に対応してください。

 
Alexey Viktorov:

なぜ誤ったコードを繰り返そうとするのか?なぜ、未知の .eh ファイルをチェーンする必要があるのでしょうか?

FILE_SHARE_READ|FILE_SHARE_WRITE フラグでファイルを開くとエラーが発生する場合、余計な人為的なエラーを発生させずにこれらの問題を再現するようにしてください。

なぜ、コードが間違っていると思うのですか?

エラーについて報告する方法は同じで、.ex ファイルはあなたのためではなく、開発者のための ものです。もし、あなたがエラーの簡単な再現で手助けをしたいのであれば、私のアドバイスを利用すればいいし、手助けをしたくないのであれば、空疎な怒りの書き込みで他人に迷惑をかけないことです

 
A100:

なぜ、コードが間違っていると思うのですか?

このような方法でエラーを報告することができるのですが、.ex ファイルはあなたのためではなく、開発者のために置いて います。もし、あなたがエラーの簡単な再現で手助けをしたいのであれば、私のアドバイスを利用すればいいし、手助けをしたくないのであれば、空疎な怒りの書き込みで他人に迷惑をかけないことです

あなたの書き込みは、どちらかというと悪意に満ちています。要望

トレーディング、自動売買システム、ストラテジーテスターに関するフォーラム

バグ、バグ、質問

アレクセイ・ビクトロフ さん 2018.07.23 14:16

助からないのが不思議FILE_SHARE_WRITE フラグなしで5004しか出ませんでした。

書き込みアドバイザーのファイルはOnInitで開き、OnDeinitで閉じるだけです。同時に、リードアドバイザーでは、ファイルが問題なく読み込まれ、印刷される。

あなたの動作をより正確に再現するために、どのようにファイルを書き込んでいるのかを明確にするのが良いと思います。


あなた宛のものではありませんが、2年前の書き込みに張り付いてすり寄ったのは、人為的に作られたエラーで、開発者が注意を払わなかったと私は思っています。

そして、繰り返しになりますが、なぜ人為的に作られたエラーを再現しなければならないのでしょうか?

 
Alexey Viktorov:

そしてもう一度、「なぜ、人為的に作られたエラーを再現しなければならないのか?

人為的に作られたエラーとは何か、説明してください。I don't understand this phrase
 
TheXpert:

書き込みのためにファイルを開いた 後(コードのパート1)、Windowsビューアで表示してみてください。少なくとも、どのハンドルに問題があるかが明らかになります。

開いたら-2枚目、開かなかったら-1枚目。

Windowsは、最初のファイルを開きます。システムレベルでは、read, write, share_read フラグが設定されていることが確認できます。しかし、ターミナルで同じファイルを開いて読み込むと、5004が表示されます。最初のExpert Advisorはファイルに書き込みます。つまり、遊びでフラグを立てて開くだけではありません。

時間があるときに、デモ用のスクリプトを作ってみようと思っています。しかし、今回初めて書いたものではないこと、コードにファイルに関する展開がないことから判断すると、湾曲は存在する。

PS.もしかして、すでにSDに書き込んだ人?その答えとは?

 
A100:
厳密に言えば、エラーは 異なるExpert Advisors(フラグは関係ありません)から FileOpen(ファイル名)を同時に呼び出した場合に発生します。
FILE_SHARE_READ フラグは、少なくともwinapiオリジナルでは、実際には非独占的な読み取りアクセスを意味します。
 
Stanislav Korotky:

Windowsは最初のファイルを開きます。

2番目のHandleは、フラグにもかかわらず、排他的な読み取りアクセスやその他の不正なアクセスを望んでいます。
 
A100:
人為的に作られたエラーとは何か、説明してください。このフレーズは理解できない。

私が言っていることに裏表はないんです。人工皮革とは何かを理解する必要があります。その理解を参考にしてください。

テンプレートや他のタンバリンで追加の操作をせずに、FILE_SHARE_READ|FILE_SHARE_WRITE フラグでエラーERR_CANNOT_OPEN_FILEを返すコードを表示する。

タンバリン無しでエラーが再現されない場合は、タンバリン中にエラーが発生したことを意味します...。

一連の動作を繰り返してみる。

EA 1:

OnInitでは、バイナリファイルが書き込み用にオープンされます。

毎分、現在のバーのオープニングをファイルに書き込みます。

ファイルはOnDeinit時のみ閉じられる。

Expert Advisor 2:

1分ごとにこのバイナリファイルを開く。

最後のエントリを読み出し、それを表示する。

ファイルを閉じます。

そして、これを1分ごとに繰り返す。


ファイルのオープンエラーはありません。

 

このシンプルなスクリプトを、まずwriting = trueで実行し、次に別のチャートでwriting = falseで実行すると、エラーが発生するのです。

#property script_show_inputs

input bool writing = false;

int OnStart()
{
  int handle = FileOpen("xyz.foo", FILE_READ|FILE_BIN|FILE_SHARE_READ|(writing?FILE_WRITE:0));
  if(handle == INVALID_HANDLE)
  {
    Print("FileOpen failed: ", GetLastError());
    return INIT_FAILED;
  }
  
  if(writing) FileWriteInteger(handle, 0);
  
  Print("handle=", handle);
  
  while(!IsStopped())
  {
    Sleep(1000);
  }

  Print("Closing");
  FileClose(handle);

  return 0;
}
 
Andrey Khatimlianskii:

私の記憶では、価格が絶望的に古くなったとみなされるタイムアウトが設定されています。つまり、3分間変化がなければ、それで開くことはできないのです。

この場合のテストスクリプトを書きました。NoPriceは最後のティックから64秒後に捕捉されました。1分間のタイムアウトは確かに価値があるのかもしれません。ちょっと調べてみないと...。