| 
 ▼ たてぐやさん 
>  エラーが出るのは以下のコードです。 
>  
>   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);を使ってみたらどうなりますか? 
そうした場合でもエラーが出ますか? 
   |