喫茶XRAYトップページ

[▲前のスレッド]

[3140] Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/3 (水) 19:43:31 TS
Mr.XRAYさん、いつもお世話になります。

Delphi2010もお使いの様なのですが、つい最近自動バージョンアップ
をしたのですが、下記のコードでFEFFと書き込まれると思うのですが
書き込みがF2F8となってしまいます、Delphi7ではFEFFとなります。
これってバグでしょうか。

procedure TForm1.BitBtn1Click(Sender: TObject);
var DataPath:String;
begin
  DataPath:='D:\test.dat';
  with TFileStream.Create(DataPath, fmCreate or fmShareDenyNone) do try
          Write(#$fe#$ff, 2);
  finally
    free;
  end;
end;

[3141] Re:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/3 (水) 22:32:58 Mr.XRAY
▼ TSさん

> Delphi2010もお使いの様なのですが、つい最近自動バージョンアップ
> をしたのですが、下記のコードでFEFFと書き込まれると思うのですが
> 書き込みがF2F8となってしまいます、Delphi7ではFEFFとなります。


こういうの弱いんですよね.
気になってしまいます.
私も今日自動バージョンアップでした.
さてと... (^^;)


[3142] Re:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/3 (水) 22:38:59 Mr.XRAY
▼ TSさん

ヤバイッス.
コードコピペでやったら,
BZというバイナリエディタで開いた結果です.


[3143] Re2:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/3 (水) 22:51:28 TS
▼ Mr.XRAYさん

Write(#$55#$66#$fe#$ff, 8);
とすると
55 00 66 00 F2 F8 F3 F8
の様に保存されます、さっぱり解りません。
#$fc と言う書き方をしてもWideChar扱いになるみたいなので
var b1:array [0..1] of byte
Write(b1,2);
の様に書き換えたないといけないみたいですね。
バージョンアップのせいかどうかわかりませんが、
前のに戻すのも面倒なので、このままにします。


[3144] Re3:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/3 (水) 22:59:30 taka
▼ TSさん
> ▼ Mr.XRAYさん
>
> Write(#$55#$66#$fe#$ff, 8);
> とすると
> 55 00 66 00 F2 F8 F3 F8
> の様に保存されます、さっぱり解りません。
> #$fc と言う書き方をしてもWideChar扱いになるみたいなので
> var b1:array [0..1] of byte
> Write(b1,2);
> の様に書き換えたないといけないみたいですね。
> バージョンアップのせいかどうかわかりませんが、
> 前のに戻すのも面倒なので、このままにします。


Delphi2010を持っていないのなんともいえませんけど
AnsiString(#$55#$66#$fe#$ff)
にしたら、どうなりますか?

では、おやすみなさい

[3145] Re4:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/3 (水) 23:20:51 Mr.XRAY
▼ takaさん

> > var b1:array [0..1] of byte
>> の様に書き換えたないといけないみたいですね。
>> バージョンアップのせいかどうかわかりませんが、


そうでしたね.確かByteで扱うような記事がありました.
あるいは.

> AnsiString(#$55#$66#$fe#$ff)

ハハー,恐れ入りました.Writeはユニコード対応でないのでした.
つまり,バージョンアップのせいではないですね.


[3147] Re5:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/3 (水) 23:36:34 Mr.XRAY
▼ takaさん
▼ TSさん

どちらかと言うと,Byte配列で扱った方が直感的で分かりやすいです.
私的には.

[3151] Re6:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/4 (木) 08:53:35 TS
▼ Mr.XRAYさん

>つまり,バージョンアップのせいではないですね.

実は Write(#$fe#$ff, 2); このコードを使って動作していた
物が(読み込み時これの書き込みでUNIの判定をさせる)
バージョンアップ後読み込みが出来なくなり調べてみると
この様になっていた物で今回のバージョンアップで処理が
変更になったのではないかと考えた訳です、どなたか
自動バージョンアップにしておられないからで検証して
もらうと納得いくんですが。

▼ takaさん

>AnsiString(#$55#$66#$fe#$ff)
>にしたら、どうなりますか?

AnsiStringも使ってみました、これでも大丈夫だと思います。

[3152] Re7:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/4 (木) 10:36:43 Mr.XRAY
▼ TSさん

> バージョンアップ後読み込みが出来なくなり調べてみると
> この様になっていた物で今回のバージョンアップで処理が


なるほどそういうこですか.
う〜ん,新規にインストールすれば確認できますが...

> 自動バージョンアップにしておられないからで検証して

いらしゃるとは思うのですが,
この喫茶店は敷居が高いようなので...


[3183] Re8:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/10 (水) 20:22:44 Mr.XRAY
▼ TSさん

> この喫茶店は敷居が高いようなので...

やってみました.
Window 7にはまだDelphi2010がインストールしてありませんでした.
インストールしたばかりの状態でのテストです.
Windows 7は ultimate 64bit版です.


[3185] Re9:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/10 (水) 21:03:03 TS
▼ Mr.XRAYさん
検証ありがとうございます。

済みません、私の早とちりの様ですね。
すっきりしました。

[3186] Re10:Delphi2010のファイル書き込みのバグかもについて返信 削除
2010/3/11 (木) 13:50:27 Mr.XRAY
▼ TSさん

> 済みません、私の早とちりの様ですね。

あれですよね.

>もらうと納得いくんですが。

自戒の意味も含めて.
この「納得」というのが大切なのではないかと思います.
この「納得」を省略したために,痛い目にあうことも.


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