【发布时间】:2010-09-29 11:06:08
【问题描述】:
我已经定义了一个记录,其中包含许多不同类型的字段(整数、实数、字符串、...加上“...的数组”方面的动态数组)。 我想将它作为一个整体保存到一个文件中,然后能够将它加载回我的程序。我不想单独保存每个字段的值。 文件类型(二进制或 ascii 或 ...)并不重要,只要 Delphi 可以将其读回记录即可。
你有什么建议吗?
【问题讨论】:
-
delphi.about.com/od/fileio/a/fileof_delphi.htm 还要确保使用
packed record,因为常规记录的内存对齐方式在版本之间可能会发生变化 -
一个新的OpenSource unit and classes 值得考虑用于序列化记录或动态数组(具有比序列化更多的功能) - 适用于 Delphi 5 到 XE2。自 Delphi 2009 以来,恕我直言,使用短字符串不是一个选项,因为这些字符串是 Ansi 字符串 - 你会丢失很多文件空间。
-
为什么不单独保存每个字段?反正也没那么难。向您的记录过程 MyRec.WriteToStream(DiskStream: TStream) 添加一个方法。在该方法中,将每个记录字段保存到流中。您的代码不是独立的,而不是使用 3rd 方库。而且您只花费了几行额外的代码(每个字段大约一行)。是不是很糟糕!这里推荐的一些库已经不存在了(超级对象)。
标签: delphi file-io delphi-2010