![]() |
Ini: Mehrzeilige Texte
Hi,
mal eine Frage: wie kann ich es realisieren mehrzeilige Texte in die Ini zu schreiben (zum Beispiel den Text einer Memo). Eine Möglichkeit wäre es so zu machen:
Code:
Oder eine weitere Möglichkeit wäre auch, die Zeilen-Umbrüche durch Zeichen ersetzen (also #13 durch \ und #10 durch n; daraus folgt: #13#10 = \n)
[section]
rowcount = 2 row1 = Dies ist ein Text row2 = Dies ist ein weiterer Text Aber was ist die beste, da es ehrlich gesagt sehr umständlich ist die zuvor genannten Methoden umzusetzen, gerade bei längeren Texten. Chris |
:hi:
wenn du sooo lange Texte hast, dann solltest du aufpassen, den die normale INI geht nur bis 64KB. Wenn es mehr sein soll, dann brauchst du TBigIniFile oder TMemIniFile. |
Ok, danke für den Tipp.
Ich vermute, dass Handling ist gleich, oder? Gibt es vielleicht in einer der beiden Types zufälligerweise die Proz. WriteStrings? Chris |
Moin Chris,
also so aufwändig finde ich das nicht. Mal kurz umrissen:
Code:
Ist zwar ungetestet, sollte soweit aber stimmen.
[color=#000080]// Schreiben[/color]
ini.EraseSection('Section'); ini.WriteInteger('Section','rowcount',Memo1.Lines.Count); [b]for[/b] i := 0 [b]to[/b] Memo1.Lines.Count-1 [b]do[/b] [b]begin[/b] ini.WriteString('Section','row'+IntToStr(i+1),Memo1.Lines[i]); [b]end[/b]; [color=#000080]// Lesen[/color] Memo1.Lines.Clear; iCount := ini.ReadInteger('Section','rowcount',0); [b]for[/b] i := 1 [b]to[/b] iCount [b]do[/b] [b]begin[/b] Memo1.Lines.Add(ini.ReadString('Section','row'+IntToStr(i),'')); [b]end[/b]; |
Moin Chris,
noch ein kleiner Nachtrag: Auslesen ginge auch mit ReadSectionValues. Dann kannst Du in einem Rutsch alles in der Section einlesen. Nachteil: Er würde auch den Rowcount mitnehmen, die Zeile müsste dann entweder gelöscht, oder in einer anderen Section untergebracht werden, die nur die Zeilenzähler enthält. |
Habe jetzt die Methode mit #13#10 durch \n ersetzen genommen ist kürzer und bedarf weniger Anderungen des Source.
Chris |
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz