Итак, у вас есть INI-файл с содержимым
[PEOPLE]
Name=Maxine
Age=30
и вы хотите загрузить его в запись, определенную как
type
TMyRecord = record
Name: string;
Age: integer;
end;
?Это очень легко.Просто добавьте IniFiles
к предложению uses
вашего устройства и затем выполните
var
MyRecord: TMyRecord;
procedure TForm1.Button1Click(Sender: TObject);
begin
with TIniFile.Create(FileName) do
try
MyRecord.Name := ReadString('PEOPLE', 'Name', '');
MyRecord.Age := ReadInteger('PEOPLE', 'Age', 0);
finally
Free;
end;
end;
. Конечно, переменная MyRecord
не обязательно должна быть глобальной переменной.Это также может быть локальная переменная или поле в классе.Но все зависит, конечно, от вашей конкретной ситуации.
Простое обобщение
Несколько более интересная ситуация, если ваши INI-файлы содержат несколько человек, например
[PERSON1]
Name=Andreas
Age=23
[PERSON2]
Name=David
Age=40
[PERSON3]
Name=Marjan
Age=49
...
и вы хотите загрузить его в массив TMyRecord
записей, тогда вы можете сделать
var
Records: array of TMyRecord;
procedure TForm4.FormCreate(Sender: TObject);
var
Sections: TStringList;
i: TIniFile;
begin
with TIniFile.Create(FileName) do
try
Sections := TStringList.Create;
try
ReadSections(Sections);
SetLength(Records, Sections.Count);
for i := 0 to Sections.Count - 1 do
begin
Records[i].Name := ReadString(Sections[i], 'Name', '');
Records[i].Age := ReadInteger(Sections[i], 'Age', 0);
end;
finally
Sections.Free;
end;
finally
Free;
end;
end;