Zum Beispiel so: siehe unten, procedure kopiere( mi1, mi2 : TMemIniFile; sec : string );
[ Ich nehme an, du arbeitest ohne SubSections. Falls doch: Wenn du die Subsections von sec auch kopiert haben willst, dann müsstest du via ReadSubSections (oder ReadSections) an die in diesen SubSections gespeicherten Werte gelangen. ]
In diesem Beispiel werden die drei Wertepaare (b=1, c=2, d=3) aus Section a von m1 nach m2 kopiert.
Delphi-Quellcode:
uses IniFiles;
procedure kopiere( mi1, mi2 : TMemIniFile; sec : string );
var hs : TStringList;
wert : string;
i: Integer;
begin
hs := TStringList.Create;
try
mi1.ReadSection( sec, hs );
for i := 0 to hs.Count-1 do
begin
wert := mi1.readstring( sec, hs.Strings[i], '' );
mi2.WriteString( sec, hs.Strings[i], wert );
end;
finally
hs.free;
end;
end;
procedure TForm87.FormCreate(Sender: TObject);
var m1, m2 : TMemIniFile;
begin
m1 := TMemIniFile.Create( extractfilepath( application.exename) + 'tm1.txt' );
m2 := TMemIniFile.Create( extractfilepath( application.exename) + 'tm2.txt' );
try
m1.AutoSave := true;
m2.AutoSave := true;
m1.WriteString( 'a', 'b', '1' );
m1.WriteString( 'a', 'c', '2' );
m1.WriteString( 'a', 'd', '3' );
m1.WriteString( 'a\w', 'b', '1' );
m1.WriteString( 'a\w', 'c', '2' );
m1.WriteString( 'a\v', 'd', '3' );
kopiere(m1,m2,'a');
finally
m1.Free;
m2.Free;
end;
end;