클래스 object의 데이타만 따로 저장하는 것은 일반적으로 잘 사용하지 않습니다.
다른 고수님께서 그런 방법을 사용하기도 하겠지만, 제 생각으로는 별로 추천하고
싶지 않은 방법입니다.
대신 클래스의 멤버를 record ( C언어의 struct ) 에 따로 만들어 두는 편번을
사용하기도 하는데 예로서 아래와 같이 합니다.
type
ExRecord = record
Field1 : array [ 0..255 ] of Char;
Field2 : Integer;
end;
ExClass = class
private
FRecord : ExRecord;
protected
public
property Field1 : PChar read GetField1;
property Field2 : Integer read FRecord.Field2;
procedure WriteData( poStream : TStream );
published
end;
implementation
procedure ExClass.WriteData( poStream : TStream );
begin
poStream.Write( FRecord, Sizeof( FRecord ) );
end;
function ExClass.GetField1 : PChar;
begin
Result := @FRecord.Field1;
end;
굳이 class의 멤버변수를 저장하려면 대충 이런식으로 하면 될 것 같습니다.
다른 방법이 있냐구요? 저도 잘... ^^a... 다른 방법을 알아내면 다시 답해
드리겠습니다.
ps : 테스트는 해보지 않았습니다.
이은호 님이 쓰신 글 :
:
:
: 안녕하세요..
:
: 현재 작게나마 연습용 프로그램을 제작하고 있는데요..
: 막히는 부분이 생기어 이렇게 질문 드립니다.
:
: 클래스를 이용하여 만든 객체의 데이터를 그대로 파일로 저장하는 방법은 없나요.
: 나중에 이 파일을 불러들여 사용하려고 하거든요..
:
: var UserFile File of TMyClass;
:
: 저장할때와 불러들일때 모두 위의 형식대로 파일을 선언하였거든요..
: 그리고 write();와 read();문을 사용하였는데, 안되더군요.
:
: 답변좀 부탁드립니다.
:
:
|