Q&A

  • 또 긴문자열에 관한 질문?
아래와 같이 하면 이진파일에 저장이 됩니다

type



TPerson = record

name : string[50];

vorname : string[50];

end;





var

Form1: TForm1;



Person: TPerson;

Computer: TComputer;



Stream: TFileStream;



implementation



{$R *.DFM}



procedure TForm1.Button1Click(Sender: TObject);

begin

try

Stream := TFileStream.Create('c:test.dat',fmOpenReadWrite);

except

Stream := TFileStream.Create('c:test.dat',fmCreate);

end;



//2 Eintr?e pro Record



//save 2 records for TPerson and TComputer



Person.name:='Grossenbacher';

Person.vorname:='Simon';

Stream.WriteBuffer(Person, SizeOf(TPerson));



Person.name:='Stutz';

Person.vorname:='Thomas';

Stream.WriteBuffer(Person, SizeOf(TPerson));



Stream.Free;

end;



그런데 아래와 같이 고치면 저장이 안됩니다

type



TPerson = record

name : string[50];



---- 여기를 이렇게 고쳐서 하면 이진파일에 저장이 안됩니다. 빈공간만 저장이됨

vorname : string;

----------------------

end;

var

Form1: TForm1;



Person: TPerson;

Computer: TComputer;



Stream: TFileStream;



implementation



{$R *.DFM}



procedure TForm1.Button1Click(Sender: TObject);

begin

try

Stream := TFileStream.Create('c:test.dat',fmOpenReadWrite);

except

Stream := TFileStream.Create('c:test.dat',fmCreate);

end;



Person.name:='Grossenbacher';



------여기에는 메모박스에서 입력된 긴 문자열을 받게 했습니다.

Person.vorname:=Memo1.Text;

-----------------------------

Stream.WriteBuffer(Person, SizeOf(TPerson));



Person.name:='Stutz';

Person.vorname:='Thomas';

Stream.WriteBuffer(Person, SizeOf(TPerson));



Stream.Free;

end;



위와 같이 하면 저장이 안됩니다. 어떻게 하면 됩니까?

가르쳐주세요













0  COMMENTS