gpt4 book ai didi

德尔福2010 : How to save a whole record to a file?

转载 作者:行者123 更新时间:2023-12-03 14:34:44 26 4
gpt4 key购买 nike

我定义了一个记录,其中包含许多不同类型的字段(整数、实数、字符串……加上“数组……”的动态数组)。我想将其作为一个整体保存到一个文件中,然后能够将其加载回我的程序中。我不想单独保存每个字段的值。文件类型(二进制或 ascii 或...)并不重要,只要 Delphi 可以将其读回记录即可。

你有什么建议吗?

最佳答案

只要不使用动态数组,您就可以直接从流中加载和保存记录的内存。所以如果你使用字符串,你需要将它们固定:

type TTestRecord = record 
FMyString : string[20];
end;

var
rTestRecord: TTestRecord;
strm : TMemoryStream;

strm.Write(rTestRecord, Sizeof(TTestRecord) );

您甚至可以一次加载或保存记录数组!

type TRecordArray = array of TTestRecord;

var ra : TRecordArray;

strm.Write(ra[0], SizeOf(TTestRecord) * Length(ra));

如果您想编写动态内容:

iCount   := Length(aArray);
strm.Write(iCount, Sizeof(iCount) ); //first write our length
strm.Write(aArray[0], SizeOf * iCount); //then write content

之后,您可以读回它:

strm.Read(iCount, Sizeof(iCount) );       //first read the length
SetLength(aArray, iCount); //then alloc mem
strm.Read(aArray[0], SizeOf * iCount); //then read content

关于德尔福2010 : How to save a whole record to a file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3820996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com