名前 題名 ▼ たてぐやさん > こんな難しい漢字は手じゃ絶対書けませんね。 > で、「お知恵拝借」のスレッドが長くなってしまったので、ここに改めます。 > どなたか何か気付いたことがあったら教えてください。前スレと一部重複しま > すがご勘弁を。 > エラーが出るのは以下のコードです。 > > 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)でオープンしているのですが、 > エラーになるケースがあります。ここまでは前スレに書きました。そして、原 > 因不明なので、蚤取り眼で追いかけたところ、解ったことがあります。この関 > 数を呼び出す前にこんなコードがあります。 > > 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; > > NMPO3のAtachementはTstringlist型ですので、Commmatetxで文字列に代入し > ています。Atachedはstring[255]で定義しています。この時に、Atachmentsに > 一つだけ入ってくる分には何も起りません。とkろが、2個以上入ってくると > 上記(2)でエラーになります。昔ながらの方法で > > {$I-} > Reset(LogF); > SHowmessage(IntToStr(IORsult)); > {$I-} > としてみると、エラーコードとして「2」が返ってきます。どうもAtachementsが > 複数の値を持っていると、何かメモリエリアが破壊されているような感じを > 受けます。似たようなコードは他のプログラムで何度か書いていますが、こんな > 不可解な現象は初めてです。 > もうずいぶん長い間これが解決でできず、表題のような状態になりました。 > どなたか何かお気づきの点がありましたらどうか教えてください。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link