怎样将TMemoryStream 读入到一个byte数组里面

Frewin 2006-03-10 11:33:43
ms := TmemoryStream.Create;
Jpg := Tjpegimage.Create;
Jpg.Assign(Image1.Picture.Graphic);
Jpg.SaveToStream(Ms);
Ms.Position := 0;
-- arraybye :array of byte;
将TMemoryStream 读入到一个byte

反之,怎样将byte读入到TmemoryStream里
...全文
509 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
madyak 2006-03-10
  • 打赏
  • 举报
回复
这样比较方便
SetLength(arraybye, Ms.size+12);
//将流写入数组
Ms.ReadBuffer(arraybye[12], Ms.size);

然后你把arraybye[0]到arraybye[11]写上头就行了

当然你也可以把头放在流的最前面,这样一次性就全复制过来了
Frewin 2006-03-10
  • 打赏
  • 举报
回复
to :madyak(无天) ( ) 信誉:120
谢谢,你的答案测试已通过,现有:
如果我想在Ms.ReadBuffer(arraybye[0], Ms.size)之前,先给arraybye加12个字节的包头,那该怎样,可不可以将TmemoryStream直接加包头
madyak 2006-03-10
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
ms: TmemoryStream;
arraybye: array of Byte;
Jpg: Tjpegimage;
begin
ms := TmemoryStream.Create;
Jpg := Tjpegimage.Create;
Jpg.Assign(Image1.Picture.Graphic);
Jpg.SaveToStream(Ms);
Ms.Position := 0;
SetLength(arraybye, Ms.size);
//将流写入数组
Ms.ReadBuffer(arraybye[0], Ms.size);
//将数组写入流
Ms.Clear;
Ms.WriteBuffer(arraybye[0], Length(arraybye));
end;
madyak 2006-03-10
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
ms: TmemoryStream;
arraybye: array of Byte;
Jpg: Tjpegimage;
begin
ms := TmemoryStream.Create;
Jpg := Tjpegimage.Create;
Jpg.Assign(Image1.Picture.Graphic);
Jpg.SaveToStream(Ms);
Ms.Position := 0;
SetLength(arraybye, Ms.size);
//写入数据
Ms.ReadBuffer(arraybye[0], Ms.size);
//将数组写入流
Ms.Clear;
Ms.WriteBuffer(arraybye[0], Length(arraybye));
end;
Frewin 2006-03-10
  • 打赏
  • 举报
回复
如果我要将arraybye每64个字节存放成一个array of byte?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧