TMemoryStream下关于bye数组的操作

来源:互联网 发布:python 数组排序sort 编辑:程序博客网 时间:2024/05/01 02:50

  最近写一个数据操作的方法时,发现读取byte数组总是莫名的报错代码如下:

procedure TForm35.btn3Click(Sender: TObject);
var
    Mem: TMemoryStream;
    pFile: Pointer;
    nCount: Integer;
    FileAry: array of Byte;
    s: string;
    s1: PChar;
begin
    Mem := TMemoryStream.Create;
    Mem.LoadFromFile('c:/SH201104011552_JS.bin');
    Mem.Position := 0;

    SetLength(FileAry, Mem.Size);
    Mem.Read(FileAry, Mem.Size);

    ShowMessage(IntToStr(LoadFilePoint(FileAry, Mem.Size, nCount)));
    ShowMessage(IntToStr(nCount));
    Mem.Free;
end;

 

在执行黑色字体的代码后,发现FileAry数据没有数据,感觉很奇怪,后来发现TMemoryStream的read方法的第一次参数

如果定位为array时,需要指向数据的初始地址:

正确的写法: Mem.Read(FileAry[0], Mem.Size);

原创粉丝点击