喫茶XRAYトップページ

[スレッド全体
]

[3043] Re2:Indyのバグかも返信 削除
2010/2/7 (日) 23:59:10 Mr.XRAY
▼ TSさん

> Delphi2010でしか試していません、上記のホームページの指摘事項の
> 問題では無いみたいです、暇をみて調査中です。


そうでしたか.残念!!

> 以下もopml.pasで使用されているソースですが、
> Delphi7で使用している。Indy10.0.52では正常に'2002/07/27 1:35:52'
> が表示されますが、Delphi2010のIndyではエラーとなります。


とすると,文字コードページ関係なのかな?

> これをコメントアウトすると'2003/08/28 1:35:52'が返ってきます。
> 年月日が1プラスされたものです。
> これって一体何なんでしょうか。


ますます分かりません.
またソースをダウンロードしてやってみないことには... (^^;
何とも.スミマセンね.役に立たなくて.
TSさんの格闘を祈るばかりです.ハイ.

ん? 日付って,エンコード何でしたっけ?


[3044] Re3:Indyのバグかも返信 削除
2010/2/8 (月) 08:42:57 TS
▼ Mr.XRAYさん
>ん? 日付って,エンコード何でしたっけ?
話が文字化けとは違ってコード内のIndyの日付関数の事です。

> またソースをダウンロードしてやってみないことには... (^^;
前回のコードはIndyの関数の1つで'Thu,27 Jul 2002 01:35:52 GMT'
をセットすればプロパティのAsDateTime(TDateTime)で'2002/07/27 1:35:52'
が得られると言う物です。

Edit2個、ボタン1個あとコードをコピペすればテストできます、
ダウンロードは不要ですので、エラーになるかならないかだけ
できれば結果を教えて下さい。

日付が1プラスになるのも初期値が0セットと関数にあるのに
最初1がセットされ、それに正常な値がプラスされる為の様です。

最新のIndy10とIndy10.0.52とはこの部分のコードがまるで違います。

あまりに大胆なエラーなので(必ずエラーになる様に書いてある)
他の方のIndyはどうなのか結果が知りたいです。

[3045] Re4:Indyのバグかも返信 削除
2010/2/8 (月) 10:55:47 Mr.XRAY
▼ TSさん

> あまりに大胆なエラーなので(必ずエラーになる様に書いてある)
> 他の方のIndyはどうなのか結果が知りたいです。


では,テスト結果のみです.
(1) 新規プロジェクトに以下を配置
    TButton 1個
    TEdit 2個
    TIdHTTP 1個
(2) オブジェクトインスペクタで
    Edit1のTextプロパティにThu,27 Jul 2002 01:35:52 GMTをセット
(4) テストコードは以下

// usesにIdDateTimeStampを追加
//
function RFC822ToDateTime(ARFC822String: string): TDateTime;
begin
   with TIdDateTimeStamp.Create(nil) do
   try
    //RFC 準拠の日付および時刻の値からTIdDateTimeStampの日付および時刻を取得
    SetFromRFC822(ARFC822String);
    Result := AsTDateTime ;
   finally
    Free;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  d1 : TDateTime;
  st1 : string;
begin
  //Indtyバージョン確認用
  Panel1.Caption := IdHTTP1.Version;

  //Edit1.text='Thu,27 Jul 2002 01:35:52 GMT';
  d1 := RFC822ToDateTime(Trim(Edit1.text));
  //Edit2.text=2002/07/27 1:35:52
  Edit2.text := DateTimeToStr(d1);
end;

全てWindows XP(SP3)

Delphi6(UP2) Pro Indy 10.2.3
   To do item undone.

Delphi7 Pro Indy 9.00.10
   Edit2.Textの値が1899/12/30となる

Delphi2007-R2 Pro Indy 10.1.5
   To do item undone.

Delphi2009(UP3) Pro Indy 10.5.7
  ValidateTimeStamp() function in IdDateTimeStamp.pas is not implemented yet.
「IdDateTimeStamp.pas is not implemented yet.」とは
一体どういう意味なんでしょう?

Delphi2010(UP5) Pro Indy 10.5.5(Delphi2010のデフォルトバージョン)
   To do item undone.

さて.



[3050] Re5:Indyのバグかも返信 削除
2010/2/8 (月) 22:20:51 TS
▼ Mr.XRAYさん

詳しいテストありがとうございます。

Indy10.0.52以外では全滅と言う事の様ですね。

これほど放置されていると言う事はこの関数は使うなと言う事
なんでしょうかね、でもこうゆう時ソースコードがあるっていいですね。

とりあえず、自分の都合の良い様に書き換えて使えます。

今Delphi2010に完全に移行すべくぼちぼちやってますが
コードの無い物は今まで使わずにいたので助かります。

いくらコードがあっても対応待ちのコンポーネントもありますが。
 

[3052] Re6:Indyのバグかも返信 削除
2010/2/9 (火) 00:27:59 Mr.XRAY
▼ TSさん

> これほど放置されていると言う事はこの関数は使うなと言う事

おそらくそうでしょう.
だって,

>「IdDateTimeStamp.pas is not implemented yet.」

ですもん(笑)


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