您的位置:首页 > 编程语言 > Delphi

Delphi中将文件流的数据写入动态数组

2005-04-22 19:56 369 查看
var
myfile:TfileStream;
mybuf:array of Pchar;
begin
myfile:=TfileStream.Create('d:/a.txt',fmOpenReadWrite);
setlength(mybuf,myfile.size);
myfile.ReadBuffer(mybuf[0],myfile.Size);
//delete(String(mybuf),1,myfile.Size-4);
showmessage(pchar(mybuf));

此代码也是在摸索中搞出来的,不是非常的理解,大概理解是这样的,因为delphi中的静态数组是在运行前就分配好了,所以它的变量地址就是此数组的第一维地址,即没有描述部份,故它的sizeof为1个字节,而动态数组是在运行期间动态分配一个内存块,所以它的变量地址部分需要一个描素部分,故它的sizeof为四个字节,用于存放描素表,所以在 Readbuffet时,需要采用此数组的第一维地址为起始地址,才不会导致溢出,也不知这样理解是否正确,暂且这样理解吧,以后有机会再深入了解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: