在Vc中,只要对象从CObject继承,就可以用序列化
直接从文 件中读写出一个对象,
在Delphi中有什么相应的处理吗?比如说有THuman类,然后从THuman派生出TMan和TWoman,
现在有一个TMan的实例,两个TWoman的实例,
想写入一个文件,如果以后想从文件中读出这些数据,
如何构造出这三个对象的实例。高手指点迷津。
直接从文 件中读写出一个对象,
在Delphi中有什么相应的处理吗?比如说有THuman类,然后从THuman派生出TMan和TWoman,
现在有一个TMan的实例,两个TWoman的实例,
想写入一个文件,如果以后想从文件中读出这些数据,
如何构造出这三个对象的实例。高手指点迷津。
解决方案 »
- 完成端口内存池设计时的想法,请大家看看我想的对不对
- 请问无标题栏窗体拖动的问题
- 请问用delphi如何开com组件,请不吝赐教,有源码例程最好。分不够可以再加。
- 关于QReport的打印
- 如何实现金山词霸显示词义客户区那样的界面,例如里边可以显示多个词典,多种字体和多种标签等
- 求计算机专业毕业论文
- 如何使用TADOQuery的方法GetFieldData?
- 画表格???
- 求ADO连接ConnectionString连接方法
- SetForegroundWindow(Form1.handle);怎么不能激活我的应用程序
- ★★★★★哪位兄弟在北京或者熟悉北京的?forgot2000跪地裸奔泣求帮忙!★★★★★
- 继续偶的菜问题,不好意思;:P
從 TPersistent 中繼承>>想写入一个文件,如果以后想从文件中读出这些数据,
>>如何构造出这三个对象的实例。參考幫助 TReader, TWriter
//测试没问题
unit MyObj;interface
uses Classes,SysUtils;
type
TMyObject=class(TPersistent)
public
Property1:integer;
Property2:string;
procedure SaveToFile(const FileName: string); virtual;
procedure SaveToStream(Stream: TStream); virtual;
procedure LoadFromFile(const FileName: string); virtual;
procedure LoadFromStream(Stream: TStream); virtual;
end;
implementation{ TMyObject }procedure TMyObject.LoadFromFile(const FileName: string);
var
Stream: TStream;
begin
Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
LoadFromStream(Stream);
finally
Stream.Free;
end;
end;procedure TMyObject.LoadFromStream(Stream: TStream);
var
strlen:integer;
begin
Stream.Read(Property1,4);
Stream.Read(strlen,4);
Stream.ReadBuffer(Property2,strlen);
end;procedure TMyObject.SaveToFile(const FileName: string);
var
Stream: TStream;
begin
Stream := TFileStream.Create(FileName, fmCreate);
try
SaveToStream(Stream);
finally
Stream.Free;
end;
end;procedure TMyObject.SaveToStream(Stream: TStream);
var
strlen:integer;
begin
Stream.Write(Property1,4); //写一个整数
strlen:=Length(Property2);
Stream.Write(strlen,4);
Stream.WriteBuffer(Property2,strlen);
end;end.