// 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. |