Wenn du IniFile als Steam ausgeben möchtest schau doch mal was MemIniFile selber macht.
Intern arbeitet das schon mit Stringlists, gibt diese aber nicht 1:1 nach aussen:
Delphi-Quellcode:
procedure TMemIniFile.GetStrings(const List: TStrings);
var
I: Integer;
begin
List.BeginUpdate;
try
for I := 0 to FSections.Count - 1 do
begin
List.Add('[' + FSections[I] + ']');
List.AddStrings(TStrings(FSections.Objects[I]));
List.Add('');
end;
finally
List.EndUpdate;
end;
end;
procedure TMemIniFile.UpdateFile;
var
List: TStringList;
begin
List := TStringList.Create;
try
GetStrings(List);
List.SaveToFile(FFileName, FEncoding); // Hier könntest du auch List.SaveToStream benutzen
finally
List.Free;
end;
Modified := False;
end;
Rollo