バイナリエディタで開いた時に
000000 0101010101010101-0101010101010101
000010 0101010101010101-0101010101010101
という風に見えるデータファイルを作りたいのですが、
var
TempStream : TMemoryStream;
a:string;
begin
a:='0101';
TempStream := TMemoryStream.Create;
TempStream.WriteBuffer(Pointer(a)^,Length(a));
TempStream.SaveToFile('C:\test\test.dat');
TempStream.Free;
end
とすると、当然ASCII文字としての'0101'が書き込まれ、バイナリ表示を
すると'30313031の4バイトが書き込まれています。
希望のようにバイナリコードを書き込むにはどうしたらいいのでしょうか。
例えば
var
TempStream : TMemoryStream;
a: array [0..31] of Byte;
begin
FillChar(a, SizeOf(a), 1);
TempStream := TMemoryStream.Create;
TempStream.WriteBuffer(a, SizeOf(a));
TempStream.SaveToFile('C:\test\test.dat');
TempStream.Free;
end;
ビンビンさん、有り難うございます。Byte配列を使うのですね。実は0101と
書いたのは単なる例で任意の数値を扱うのですが、つまずいていたのは
バイナリコードの扱いでしたので、これで解決しました。
しかし、今度は「上書き」「挿入」でつまずきそうです…。
ツイート | ![]() |