喫茶XRAYトップページ

[スレッド全体
]

[3317] ちょっと鬱状態返信 削除
2010/5/1 (土) 22:22:09 たてぐや 〔HomePage
 こんな難しい漢字は手じゃ絶対書けませんね。
 で、「お知恵拝借」のスレッドが長くなってしまったので、ここに改めます。
どなたか何か気付いたことがあったら教えてください。前スレと一部重複しま
すがご勘弁を。
 エラーが出るのは以下のコードです。

  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が
複数の値を持っていると、何かメモリエリアが破壊されているような感じを
受けます。似たようなコードは他のプログラムで何度か書いていますが、こんな
不可解な現象は初めてです。
 もうずいぶん長い間これが解決でできず、表題のような状態になりました。
どなたか何かお気づきの点がありましたらどうか教えてください。


[3318] Re:ちょっと鬱状態返信 削除
2010/5/1 (土) 23:20:41 Mr.XRAY
▼ たてぐやさん

>  こんな難しい漢字は手じゃ絶対書けませんね。

御意!

>  もうずいぶん長い間これが解決でできず、表題のような状態になりました。
> どなたか何かお気づきの点がありましたらどうか教えてください。


本当にお疲れ様です.
NMPOP3はDelphi6にはありますね.
う〜む.どなたか... 頼みます.


[3319] Re2:ちょっと鬱状態返信 削除
2010/5/1 (土) 23:38:12 Mr.XRAY
今Delpphi6 Proを起動してTNMPOP3コンポを配置して,コードをみてみようと
思ったら,これ,ソースコードは付いていないんですね...

戦意喪失.


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