名前 題名 ▼ たてぐやさん > 今、メールチェッカのようなアプリケーションを作っています。メールのチェックは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でメモリを確保したら > 使用後に開放することは確認しています。これでもう一週間も悩んでいるので > すが、何か思い当たることはないでしょうか? > どうかヒントになりそうなことがありましたら教えてください。 > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link