例如:
TMyClass = class
private
  a: int;
  list: TList;
public
  b: string;
 procedure Add(p: pointer);
  constructor Create;
end
...var
 obj: TMyClass;
begin
 obj := TMyClass.Create;
end;如何将对象obj的内存块保存到二进制文件中?

解决方案 »

  1.   

      procedure   TForm1.Button1Click(Sender:   TObject);   
      begin   
          WriteComponentResFile('C:\TForm1.RES',   Form1);   
      end;   
        
      procedure   TForm1.Button2Click(Sender:   TObject);   
      var   
          vForm:   TForm1;   
      begin   
          vForm:=   TForm1.CreateNew(Application);   
          ReadComponentResFile('C:\TForm1.RES',   vForm);   
            
      end;   
        
      

  2.   

    在使用WriteComponent/ReadComponent和WriteComponentResFile/ReadComponentResFile时,所保存的实例类型是 TComponent
    所以
    TMyClass = class(TComponent)
      

  3.   

    自己写个内存流,加载对象,然后保存到文件不就可以了var 
     obj: TMyClass;
     mem: TMemoryStream; 
    begin 
     mem := TMemoryStream.Create;
     obj := TMyClass.Create; mem.write((Pointer)obj, SizeOf(TMyClass)); 
     mem.savetoFile('a.data');
    mem.free;
    obj.free;
    end; 
     
      

  4.   

    mem.savetoStream('a.bin');存二进制文件吧。