Autor Beitrag
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 07.01.05 11:10 
Es kommt häufig vor, dass auch String-Listen[meta]TStringList, Stringlist, TStrings[/meta] in einer INI-Datei gespeichert[meta]speichern, save, laden, load[/meta] werden sollen. Dafür bietet sich die Eigenschaft .CommaText der StringList an. Leider gibt es hier ein unschönes Problem: Die Methode .ReadString der IniFile-Klasse "frißt" die äußeren Anführungszeichen, so dass der erste und letzte String aus der Liste gegebenenfalls "zerstückelt" wird.

Lösung: Die Methode .DelimitedText mit anderen Trennzeichen[meta]Separator, Delimiter[/meta] verwenden. Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure SaveStringListToIni(IniFile: TIniFile;
                              const Section,Key: String;
                              StringList: TStringList);
begin
  StringList.Delimiter := #254;
  StringList.QuoteChar := #255;
  IniFile.WriteString(Section,Key,StringList.DelimitedText);
end;

function LoadStringListFromIni(IniFile: TIniFile;
                               const Section,Key,Default: String)
                               : TStringList;
begin
  Result := TStringList.Create;
  Result.Delimiter := #254;
  Result.QuoteChar := #255;
  Result.DelimitedText := IniFile.ReadString(Section,Key,Default);
end;


cu
Narses

Moderiert von user profile iconChristian S.: Meta-Tags hinzugefügt