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:
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 Christian S.: Meta-Tags hinzugefügt