喫茶XRAYトップページ

[スレッド全体
]

[3285] NMPOP3 お知恵拝借返信 削除
2010/4/22 (木) 21:56:31 たてぐや 〔HomePage
 今、メールチェッカのようなアプリケーションを作っています。メールのチェックはNKPOP3を使っています。その中に
以下のようなコードがあります。

function TFrmSet.isKidoku(f, s, h , m , r: string): boolean;
{===============================================================================
既読ならtrueを返す。
===============================================================================}
var
  Fname : string;
  Mess : Mailmessages;
  LogF : File of Mailmessages;
  i : integer;
begin
  Result := false;
  Fname := ChangeFileExt(Application.exename,'.log');
  AssignFile(LogF,Fname);
  if FileExists(Fname) then begin  //(1)
    Reset(LogF);  //(2)
    for i :=0 to FileSize(LogF) - 1 do begin
      Read(LogF,Mess);
      if (Mess.From = f) and (Mess.Subject = s) and (Mess.Head = h)
        and (Mess.MesID = M) and (Mess.RcvHead = r) then begin
        Result := true;
      end;
    end;
    CloseFile(LogF);
  end;
end;

 なんということもないコードです。これは、タイマーイベントで呼び出される
プロシジャから呼び出されている関数です。初回のタイマーイベントでは、何の
問題もなく値を返すのですが、二度目以降タイマーイベントで呼ばれると、どう
いうわけか(1)でファイルがあります、と評価されるのですが、次の(2)に進むと
EINOUTErrorファイルが見つかりません」となってしまいます。起きる状況はか
なり絞られています。当該メールに添付ファイルがある場合のみ発生します。
 ブレークポイントを設けて確認したり、(1)の行の次にShowmessageでファイル
名を表示させたりしていますが、正しいファイル名が返っています。もちろ
んファイルをオープンしたらクローズする、TStringlistでメモリを確保したら
使用後に開放することは確認しています。これでもう一週間も悩んでいるので
すが、何か思い当たることはないでしょうか?
 どうかヒントになりそうなことがありましたら教えてください。



[3286] Re:NMPOP3 お知恵拝借返信 削除
2010/4/22 (木) 23:14:50 Mr.XRAY
▼ たてぐやさん

どうもです.
今ざっと見た感じでは...  う〜んです.
カギは「当該メールに添付ファイルがある場合のみ」なんですね.

> これでもう一週間も悩んでいるので

こういうの,結構あります.(~~;


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82