実数型のデータのバイナリ保存

解決


すだ  2003-02-09 02:31:09  No: 2853

はじめまして、プログラムを始めて4ヶ月ほどになります。
過去ログで文字列型のデータのバイナリ保存があったので、それを参考に
実数型のデータのバイナリ保存のプログラムを作ってみたのですが、
button1を押すとエラーが出てうまくできません。
簡単なことなのかもしれませんが、どこが悪いのかわからないので
どなたかご教授ねがえませんでしょうか?

procedure TForm1.Button1Click(Sender: TObject);
var
 fs: TFileStream;
 i: integer;
begin
 fs := TFileStream.Create('D:\test.txt', fmCreate);

 i := StrToInt(Edit1.Text);
 fs.WriteBuffer(Pointer(i)^, SizeOf(i));
 fs.Free;
end;


にしの  2003-02-09 04:09:04  No: 2854

WriteBufferの第1引数は、実体を与えればよいです。
つまり、
WriteBuffer(i, SizeOf(i));
です。
文字列の場合は、最初の文字の実体を与えるため、
buf^
というようにする必要があります。

それと、実数(=real)なら、StrToIntでなく、StrToFloatですよ。
整数(=integer)なら、StrToIntでOKです。


すだ  2003-02-09 19:43:24  No: 2855

にしのさん、ありがとうございました。
WriteBufferの中を変えてみたらうまくいきました。


すだ  2003-02-09 19:43:51  No: 2856

解決しました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加