掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
受信したデータをファイル化するには? (ID:1833)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ちょっと書いて実行してみたのですが、不正な処理(Accsess Vioration)で 停止してしまいました。この中に記述すれば良いのは大分わかったのですが FileStreamでの保存のタイミングやファイル読み込みのいろいろな部分が まだ分からない状態です。(>_<) procedure TMainForm.AddMailList(S: TSocket); var No, Count: integer; Subject: array [0..HEADER_MAX] of Char; Date: array [0..HEADER_MAX] of Char; From: array [0..HEADER_MAX] of Char; Header: PChar; I: TListItem; DataName: String; Seq: Integer; Body: PChar; begin // メール本文表示をクリア BodyMemo.Lines.Clear; // ListView もクリア HeaderDataClear; MailListView.Items.Clear; // POP3 サーバに接続する S := NMailPop3Connect(PChar(Pop3Name)); if S <> INVALID_SOCKET then begin if (Id = '') or (Password = '') then begin // ID とパスワード入力 if InputForm.ShowModal = mrOk then begin Id := InputForm.IdEdit.Text; Password := InputForm.PasswordEdit.Text; end; end; // メールの数を得る No := NMailPop3Authenticate(S, PChar(Id), PChar(Password), ApopFlag); if No >= 0 then begin for Count := 1 to No do begin GetMem(Header, HEADER_MAX); // 順番にヘッダの内容を読み、ListView に追加 NMailPop3GetMailStatus(S, Count, Subject, Date, From, Header, False); NMailPop3GetMail(S, Count, Subject, Date, From, Header, Body, nil, nil); DataName := 'NML' + Copy(date, 1, 4) // yyyy + Copy(date, 6, 2) // mm + Copy(date, 9, 2) // dd + Copy(date, 12, 2) // hh + Copy(date, 15, 2) // mm + Copy(Date, 18, 2); // ss Seq := 0; while FileExists(DataName + '_' + IntToStr(Seq) + '.nml') do Inc(Seq); I := MailListView.Items.Add; I.Caption := StrPas(Subject); I.SubItems.Add(StrPas(Date)); I.SubItems.Add(StrPas(From)); I.Data := Header; StrLCat(Header, #13#10, HEADER_MAX - 1); end; end else begin // サーバーからのエラーメッセージを取得 NMailGetMessage(NMAIL_GET_ERROR_MESSAGE, Subject, HEADER_MAX); MessageDlg('ログインエラー:' + StrPas(Subject), mtError, [mbOK], 0); end; NMailPop3Close(S); S := INVALID_SOCKET; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.