DelphiXe 中静态数组TByteArray和动态数组TBytes /array of byte 的区别

减小字体 增大字体 作者:佚名  来源:转载  发布时间:2011-02-15 13:52:49

在应用中发现静态数组和动态数组是有区别的:

procedure TForm1.Button1Click(Sender: TObject);
var
  RsltStream: TMemoryStream;
  picBuffer: TByteArray;
begin
  RsltStream := TMemoryStream.Create;
  RsltStream.LoadFromFile('e:\pic.txt');
  RsltStream.Position := 0;                                        // 流读取操作前必须将指针回到起始位
  RsltStream.ReadBuffer(picBuffer,RsltStream.Size);    //静态数组中picBuffer 和picBuffer[0] 的指针是相同的
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  RsltStream: TMemoryStream;
  picBuffer: TBytes;   //array of byte
begin
  RsltStream := TMemoryStream.Create;
  RsltStream.LoadFromFile('e:\pic.txt');
  RsltStream.Position := 0;                                           // 流读取操作前必须将指针回到起始位

  setlength(picBuffer, RsltStream.Size);                         //给动态数组定义长度
  RsltStream.ReadBuffer(picBuffer[0],RsltStream.Size);   //动态数组中必须用picBuffer[0] ,否则地址错误,数据也是错误的

end;

来源:http://www.cnblogs.com/wxy8/archive/2011/01/28/1946921.html

Tags:

作者:佚名
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

广告位置B