▼ たてぐやさん
> エラーが出るのは以下のコードです。
>
> 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;
>
> (1)の所でファイルがあることを確認してから(2)でオープンしているのですが、
> エラーになるケースがあります。
ヒマだったので、D4で試してみましたが、複数の添付ファイルがある場合でも
そのようなエラーは発生しません。
タイマーではなく、ボタンのクリックでその関数を呼んだ場合でもエラーが
確実に発生するような最小限のコードと条件を提示してください。
> …この関数を呼び出す前にこんなコードがあります。
>
> NMPOP31.GetMailMessage(i);
> Mess.From := NMPOP31.MailMessage.From;
> Mess.Subject := PzConv1.MIMEHeaderDecode(NMPOP31.MailMessage.Subject);
> Mess.Printed := '0';
> Mess.Head := DecodeDateTime(NMPOP31.Mailmessage.Head);
> Mess.Atached := NMPOP31.MailMessage.Attachments.CommaText;
>
また、既読判定の関数を呼ぶ前に GetMailMessage(i);の代わりに GetSummary(i);を使ってみたらどうなりますか?
そうした場合でもエラーが出ますか?
|