Hi.
Ich kann nachvollziehen, dass du nach einem Gegenstück (es gibt keines) zu ReadSectionValues() Ausschau hältst, aber da nach dem Bearbeiten einer Section diese in der INI-Datei komplett ersetzt werden muss, dürfte es keinen Zeitvorteil geben:
Delphi-Quellcode:
var
ini: TMemIniFile;
fn: TFileName;
section: String;
s: TStrings;
i: Integer;
begin
// prepare
fn := ChangeFileExt(ParamStr(0), '.ini');
ini := TMemIniFile.Create(fn);
section := 'Privateer3000';
ini.ReadSectionValues(section, ListBox.Items);
// modify values ...
// store Section - one fell sweep
ini.EraseSection(section);
s := TStringList.Create;
ini.GetStrings(s);
s.Add(Format('[%s]', [section]));
s.AddStrings(ListBox.Items);
ini.SetStrings(s);
s.Free;
// my favourite - one by one - my
ini.EraseSection(section);
with ListBox.Items do
for i := 0 to Pred(Count) do
ini.WriteString(section, Names[i], ValueFromIndex[i]);
// update
ini.UpdateFile;
ini.Free;
end;
Grüße vom marabu