아래와 같이 하면 이진파일에 저장이 됩니다
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;
위와 같이 하면 저장이 안됩니다. 어떻게 하면 됩니까?
가르쳐주세요