加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数组 – 将复杂记录写入文件

发布时间:2020-12-15 10:11:13 所属栏目:大数据 来源:网络整理
导读:你好 我在我的项目中定义了一些记录,这些记录可能包含其他记录以及普通数据类型和其他记录的动态数组, 它是记录类型的一个例子 Type1=record x:integer; end; Type2=record Y:array of X; str:string; end; 当我试图将这些记录类型的变量之一保存到具有block
你好
我在我的项目中定义了一些记录,这些记录可能包含其他记录以及普通数据类型和其他记录的动态数组,
它是记录类型的一个例子
Type1=record
    x:integer;
  end;
  Type2=record
    Y:array of X;
    str:string;
  end;

当我试图将这些记录类型的变量之一保存到具有blockwrite函数的文件时,如下所示:

var
  Temp1:Type2;
  begin
    setlength(temp1.y,100);
    blockwrite(MyFile,Temp1,sizeOf(Temp1);

它只写了纯记录的大小,但是temp1有一个调整大小的动态数组,
有人可以告诉我如何将复杂的记录写入文件,我的意思是像VB6中使用的那样.
谢谢

解决方法

您可以使用 http://kblib.googlecode.com(适用于任何动态记录,也包含包含其他记录的记录等).在Delphi 2006/2009 / XE上测试(它不使用D2010中引入的扩展RTTI).无需手动编写保存/加载代码(只需一行即可保存/加载任何动态类型 – 字符串,记录,动态数组).

在你的例子中,它将是……喜欢这个:

TKBDynamic.WriteTo(lStream,lType2,TypeInfo(Type2));

要加载它:

TKBDynamic.ReadFrom(lStream,TypeInfo(Type2));

如果有人有兴趣如何处理’记录版本’,只需发布??新问题,然后我会写一些例子.

类似的任务:

> How Can I Save a Dynamic Array to a FileStream in Delphi?
> Delphi 2010: How to save a whole record to a file?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读