Mit
TMemIniFile.GetStrings
kommst du an den Inhalt als
TStrings
und mit
TMemIniFile.SetStrings
kannst du ihn wieder schreiben. Der verlinkte Code könnte also folgendermaßen angepasst werden:
Delphi-Quellcode:
function RenameSection(MemIniFile: TMemIniFile; const OldSection, NewSection: String): boolean;
var
lst: TStringList;
ind: Integer;
begin
result := false;
lst := TStringList.Create;
try
MemIniFile.GetStrings(lst);
if lst.Count = 0 then Exit;
if lst.indexOf('['+NewSection+']') >= 0 then Exit;
ind := lst.IndexOf('['+OldSection+']');
if ind < 0 then Exit;
lst.Strings[ind] := '['+NewSection+']';
MemIniFile.SetStrings(lst);
result := true;
finally
lst.Free;
end;
end;
Alternativ auch als
class helper
mit ein paar kleinen Verbesserungen:
Delphi-Quellcode:
type
TMemIniFileHelper = class helper for TMemIniFile
public
function RenameSection(const OldSection, NewSection: String): boolean;
end;
function TMemIniFileHelper.RenameSection(const OldSection, NewSection: String): boolean;
var
lst: TStringList;
begin
result := false;
if SectionExists(NewSection) then Exit;
if not SectionExists(OldSection) then Exit;
lst := TStringList.Create;
try
GetStrings(lst);
lst[lst.IndexOf('['+OldSection+']')] := '['+NewSection+']';
SetStrings(lst);
result := true;
finally
lst.Free;
end;
end;