Delphi中将文件流的数据写入动态数组
2005-04-22 19:56
405 查看
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时,需要采用此数组的第一维地址为起始地址,才不会导致溢出,也不知这样理解是否正确,暂且这样理解吧,以后有机会再深入了解
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时,需要采用此数组的第一维地址为起始地址,才不会导致溢出,也不知这样理解是否正确,暂且这样理解吧,以后有机会再深入了解
相关文章推荐
- Delphi中将文件流的数据写入动态数组
- delphi中将一个ADOQuery查询的数据结果传递给一个动态生成的ADOQuery
- 在Delphi下,使用线程向窗体发送动态数组数据的解决方法~
- 【1】C#基础:数据类型、运算、随机、枚举、结构、数组、列表、文件和文件流、序列化、MD5
- 1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
- C中将格式化数据写入到文件中操作
- 从文本文件读入数据到动态二维数组,文件中定义数组大小
- java中将int型数据转换成byte字节数组
- ASP.NET中将检索出的数据写入Exel形成Report的一种solution
- Delphi 2010学习笔记(15)---数据类型(变体数组)---2011-01-21
- Delphi合并2个动态数组
- DELPHI中记录类型动态数组删除
- c#中将【对象转成 JSON 格式的字符串】 及获取Json格式字符串并将转成Json对象 及对js数组取数据
- Delphi动态数组详解
- easyui combobox 动态加载数组数据
- java中将数组、对象、Map、List转换成JSON数据
- 面向对象处理人员数据 (动态数组,人员数据的增加与删除)
- 动态修改数据数组
- delphi 动态结构数组例程
- js加载Json数组实现ajax加载动态页面数据