用 TFileStream 写二进制文件的问题,为什么不能写入 > 255 的数?(100分)

  • 主题发起人 主题发起人 SeekMyself
  • 开始时间 开始时间
S

SeekMyself

Unregistered / Unconfirmed
GUEST, unregistred user!
程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var
T: TFileStream

iA : array of Integer;
begin
try
T := TFileStream.Create('E:/Test.act',fmOpenWrite or fmCreate or fmShareDenyNone);

SetLength(iA,20)


iA[0] := 3;
iA[1] := 255;
iA[2] := 258


T.Write(iA[0],1)
-- 该处是一个Byte 为 03 ,正确
T.Write(iA[1],1)
---- 该处是一个Byte 为 FF ,正确

T.Write(iA[2],1)

---- 该处应为二个Byte 为 02 01才正确,但写出的是 02 00,也就是说高位的 01
没有写,不知道为什么?是函数用错了吗?
finally
T.Free;
end;
end;

望DFWs 援手啊!
 
Write(iA[2],1)

第二个参数指定写多少数据,你设置成1却想让它写2?
 
是你自己让它写入一个字节的啊,
结果按顺序把低位的字节写进去了啊
 
多谢提醒!疏忽 :(
 
多人接受答案了。
 

Similar threads

后退
顶部