不
不要踩我
Unregistered / Unconfirmed
GUEST, unregistred user!
我的主要实现的功能就是要将
88485022写到文件并且使用16进制编辑器查看地址0处的数值为 88 48 50 22
下面的代码使用了一个setlength,结果为A8 3F D5 00,这是不对的,然而如果去掉
setlength,并把 nbytes: array of Byte;这句改为nbytes: array [0..3]of Byte;
显示的结果又对了,这是为什么?
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
k, i,art: Integer;
nbytes: array of Byte;
begin
s := '88485022';
i := Length(s) div 2;
SetLength(nbytes, i);
for k := 0 to i - 1 do begin
nbytes[k] := strtoint('$'+Copy(s, 2 * k + 1, 2));
end;
t:=FileOpen('ww.txt', fmOpenWrite or fmShareDenyWrite);
FileSeek(t,0,soFromBeginning);
FileWrite(t,Byte(nbytes),i);
FileClose(t);
end;
88485022写到文件并且使用16进制编辑器查看地址0处的数值为 88 48 50 22
下面的代码使用了一个setlength,结果为A8 3F D5 00,这是不对的,然而如果去掉
setlength,并把 nbytes: array of Byte;这句改为nbytes: array [0..3]of Byte;
显示的结果又对了,这是为什么?
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
k, i,art: Integer;
nbytes: array of Byte;
begin
s := '88485022';
i := Length(s) div 2;
SetLength(nbytes, i);
for k := 0 to i - 1 do begin
nbytes[k] := strtoint('$'+Copy(s, 2 * k + 1, 2));
end;
t:=FileOpen('ww.txt', fmOpenWrite or fmShareDenyWrite);
FileSeek(t,0,soFromBeginning);
FileWrite(t,Byte(nbytes),i);
FileClose(t);
end;