// Hiermit kann man
TStrings
(TStringlist, TListbox.Items usw.) in eine uses IniFiles; procedure schreiben(sektion, datei: string; sl: TStrings); var ini: TInifile; s: string; begin s := stringreplace(sl.text, #13#10, #1, [rfreplaceall]); ini := TInifile.create(datei); ini.writestring(sektion, 'Strings', s); ini.free; end; procedure lesen(sektion, datei: string; sl: TStrings); var ini: TInifile; s: string; begin ini := TInifile.create(datei); s := ini.readstring(sektion, 'Strings', 'FEHLER'); ini.free; sl.text := stringreplace(s, #1, #13#10, [rfreplaceall]); end; // ---------------------------------------------------------- uses IniFiles;
procedure schreiben(sektion, datei: string; sl: TStrings);
var ini: TInifile;
x: integer;
begin
ini := TInifile.create(datei);
ini.erasesection(sektion);
ini.writeinteger(sektion, 'Anzahl', sl.count);
for x := 1 to sl.count do
ini.writestring(sektion, 'Strings' + inttostr(x), sl[x - 1]);
ini.free;
end;
procedure lesen(sektion, datei: string; sl: TStrings);
var ini: TInifile;
x, y: integer;
begin
sl.clear;
ini := TInifile.create(datei);
y := ini.readinteger(sektion, 'Anzahl', 0);
for x := 1 to y do
sl.add(ini.readstring(sektion, 'Strings' + inttostr(x), ''));
ini.free;
end;
// ---------------------------------------------------------- // Variante 3: uses IniFiles;
procedure schreiben(sektion, datei: string; sl: TStrings);
var ini: TInifile;
x: integer;
begin
ini := TInifile.create(datei);
ini.erasesection(sektion);
for x := 0 to sl.count - 1 do
ini.writestring(sektion, 'Strings' + inttostr(x), sl[x]);
ini.free;
end;
procedure lesen(sektion, datei: string; sl: TStrings);
var ini: TInifile;
x: integer;
begin
ini := TInifile.create(datei);
ini.readsectionvalues(sektion, sl);
ini.free;
for x := 0 to sl.count - 1 do
sl[x] := copy(sl[x], pos('=', sl[x]) + 1, maxint);
end;
// ----------------------------------------------------------
// Beispielaufrufe (für alle 3 Varianten)
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
begin
sl := TStringList.create;
// --- zum Testen ---
sl.add('Test1');
sl.add('Test2');
sl.add('Test3');
// -------------------
schreiben('Strings', 'c:\test.ini', sl);
sl.free;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Lines.clear;
lesen('Strings', 'c:\test.ini', Memo1.lines);
end;
// P.S.
// Die Varianten sind untereinander nicht kompatibel; d.h., wenn man
// beispielsweise mit Variante 2 schreibt, kann man auch nur mit der
// Variante 2 lesen.
|





