Delphi 2010:如何将整个记录保存到文件?

前端之家收集整理的这篇文章主要介绍了Delphi 2010:如何将整个记录保存到文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经定义了一个记录,它有许多不同类型的字段(整数,实数,字符串,…加上动态数组的“数组…”)。
我想将它作为一个整体保存到文件中,然后可以将其加载回我的程序。我不想单独保存每个字段的值。
文件类型(binary或ascii或…)不重要,因为Delphi可以将其读回记录。 @H_403_4@你有什么建议吗?

解决方法

@H_502_9@ 只要您不使用动态数组,就可以直接将流记录的内存加载到流中。所以如果你使用字符串,你需要使它们固定:
type TTestRecord = record 
  FMyString : string[20]; 
end; 

var 
  rTestRecord: TTestRecord;
  strm : TMemoryStream; 

strm.Write(rTestRecord,Sizeof(TTestRecord) );
@H_403_4@您甚至可以一次加载或保存一组记录!

type TRecordArray = array of TTestRecord;

var ra : TRecordArray; 

strm.Write(ra[0],SizeOf(TTestRecord) * Length(ra));
@H_403_4@如果你想写动态内容

iCount   := Length(aArray);
strm.Write(iCount,Sizeof(iCount) );      //first write our length
strm.Write(aArray[0],SizeOf * iCount);   //then write content
@H_403_4@之后,您可以阅读:

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

猜你在找的Delphi相关文章