受信中の検索No.09209
Iranoan さん 03/08/05 19:08
 
 秀まるおさん今日は、Iranoan です。
 (エディタ・ウィンドウは除いて) 本体での通常の検索は、行っても問題な
いのでしょうか? というのは、(サーバとのやり取りに異常に時間がかかった)
送受信中に、FindUp/DownInclude を使ったマクロで、検索にヒットしている
のに、返り値が 0 になってしまったことが有ったためです。
 こちらの環境は、Windows98+IE6.0+鶴亀 Ver.3.02 です。

[ ]
RE:09209 受信中の検索No.09210
秀まるお さん 03/08/06 16:13
 
 送受信の最中でも検索系コマンドは普通に使えるはずでして、こちらで非常に
簡単なテストをした限りも正しく「ヒットした時は1」が返ってきました。

    loaddll "tkinfo.dll";
    #n = dllfunc("SetFindPack", "(\"ライブラリ\",target=subject)");
    #n = dllfunc("FindDown");
    message str(#n);

 っと上記のマクロを送受信の最中に実行しただけですが…。

 画面上でたしかにヒットしてるのに返り値が0であったということですかね?。
だとしたら、そういう線でソースコードの見直しなどしてみたいと思います。

[ ]
RE:09210 受信中の検索No.09211
Iranoan さん 03/08/06 16:51
 
 秀まるおさん今日は、Iranoan です。
>  送受信の最中でも検索系コマンドは普通に使えるはず
 取り敢えず、「普通にできる」ということは覚えておきます。
>  画面上でたしかにヒットしてるのに返り値が0であったということですかね?。
 あまり自信はありませんが、そのように見えました。
・フォルダ A を以前開いたときは別のメール A-A をアクティブ
・A とは別のフォルダ B でマクロ実行
  →A を開いて検索条件に該当するメール A-B がアクティブになっている
しかし、返り値が 0 だったときの処理 (アカウント全体、全てのアカウント
全体の検索) をしているようでした。

> だとしたら、そういう線でソースコードの見直しなどしてみたいと思います。
 宜しくお願いします。
 ただ再現したときは、POP サーバが込んでいたのか、応答に時間がかかった
いたので、それも関係するのやら。

 実際の検索部分は、
<前半略>
  if( !dllfunc( "ExecAt", ##main, "SelectFolder", $$account, $$folder
   ) )call Find $$1 + "subfolder=1, inmail=3", ##main;
  else{
    call Find $$1 + "subfolder=0, inmail=0", ##main;
    if( !##return ){//該当メールが「範囲」から外れているときの処理
      if( !dllfunc( "SetViewArea", 0 ) )goto Error;
      call Find $$1 + "subfolder=0, inmail=0", ##main;
      if( !##return )call Find $$1 + "subfolder=1, inmail=3", ##main;
    }
  }
<中略>
Find:
  if( !dllfunc( "ExecAt", ##2, "SetFindPack", $$1 ) )goto Error;
  if( !dllfunc( "ExecAt", ##2, "FindUpInclude" ) ){
    if( !dllfunc( "ExecAt", ##2, "FindDown" ) )return 0;
  }
  return 1;
<以下略>
という要領ですが、該当メールがアクティブなのに、なぜ FindUpInclude の
時点で止まらないの??? 素直に
Find:
  if( !dllfunc( "ExecAt", ##2, "SetFindPack", $$1 ) )goto Error;
  if( dllfunc( "ExecAt", ##2, "FindUpInclude" ) )return 1;
  if( dllfunc( "ExecAt", ##2, "FindDown" ) )return 1;
  return 0;
とするべき???

 因みにファイルに検索語 (Message-ID) の記録が残っていたので、今
「Message-ID 検索」をしてみましたが、問題なくヒットします。

[ ]
RE:09211 受信中の検索No.09212
秀まるお さん 03/08/07 13:36
 
 送受信中だったことと、FindUp/FindDown系マクロの結果がおかしかったこと
は、たぶん関係ないと思います。

 サーバーの応答に時間がかかったとしても、それも全然関係ないはずです。

 ExecAtを使ってることもたぶん関係ないような気がするし、よく分かりません。

 FindUp/FindDown系コマンドが何らかの理由で中断されたって可能性があるか
もしれませんけど。Escキーを押すと中断するような作りになっているので、何
らかの理由でEscキーのキーコードが入ってくると中断してしまい、返り値も0に
なるようです。

 ということで、とりあえず保留させていただきます。

[ ]
RE:09212 受信中の検索No.09213
Iranoan さん 03/08/07 17:49
 
 秀まるおさん今日は、Iranoan です。
 色々調べていただき、どうも有り難うございました。
>  ということで、とりあえず保留させていただきます。
 解りました。可能性は低いですが、何か明確な再現法が解れば、改めてご報
告します。

[ ]