1. Classes를 추가합니다.
uses
Classes;
2. 값을 저장하고 불러올 Packed record를 만듭니다.
type
TPerson = Packed record
sName : Array[1..50] of Char;
nAge : Integer;
end;
//저장할 데이터의 크기를 고정시켜줍니다.
var
Person : TPerson;
꼭 record를 써야하는건 아니지만 데이터 크기 만큼 끊어 읽어야 하는 귀찮음이 있어
단순 값을 저장하고 불러올 경우엔 이 방법이 사용하기가 편리합니다.
3. dll로 저장합니다.
procedure WriteDll;
var
sFilePath : string;
Stream : TMemoryStream;
begin
sFilePath := '저장될 경로명' + '파일명.dll';
Stream := TMemoryStream.Create;
try
Stream.Clear;
Stream.Write(Person, SizeOf(TPerson));
Stream.SaveToFile(sFilePath);
finally
Stream.Free;
end;
4. dll로 불러옵니다.
procedure ReadDll;
var
sFilePath : string;
Stream : TMemoryStream;
begin
sFilePath := '불러올 경로명' + '파일명.dll';
Stream := TMemoryStream.Create;
FillChar(Person, Sizeof(TPerson), #0); //공백으로 채워줍니다.
try
Stream.LoadFromFile(sFilePath);
Stream.Position := 0;
Stream.Read(Person, SizeOf(TPerson));
finally
Stream.Free;
//공백으로 채웠기 때문에 Trim을 사용해 문자열의 양쪽 공백을 제거한 뒤 사용합니다.
ShowMessage(Trim(Person.sName));
end;
Stream으로 저장하고 불러올 때, Stream을 암호화 하게 되면 dll을 열어 보았을 때 정보를 알 수 없게 할 수도 있습니다.
다음에 시간나면 강좌로 알려드리도록 하겠습니다.