Autor Beitrag
Tobias1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: Do 06.01.05 16:58 
Ich hab ein Problem mit listbox.items.commatext: Wenn ich die Datei in eine ini-Datei abspeichere
ausblenden Delphi-Quelltext
1:
ini.writestring('A','B',listbox.items.commatext)					

und später wieder lade ist der Text in der ersten Zeile zerstückelt.

Wenn in der Listbox stand
Betrag1: 9,67€
Betrag2: 95,67€
Betrag3: 92,00€
steht später dort
Betrag1:
9,67€
Betrag2: 95,67€
Betrag3: 92,00€

in der inidatei steht
Betrag1:,0,67€","Betrag2: 95,67€",....

Wie behebe ich dies?

_________________
Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 06.01.05 17:21 
Moin!

Das Problem liegt in dem .ReadString der Ini-Datei, der "frisst" nämlich die äußersten Anführungszeichen. Mach folgendes beim Speichern:

ausblenden Delphi-Quelltext
1:
2:
3:
listbox.items.delimiter := #254;
listbox.items.quotechar := #255;

ini.writestring('A','B',listbox.items.delimitedtext)

Analog vor dem Laden auch wieder, fertig.

cu
Narses

//EDIT: Sorry, du musst natürlich auch die Methode .delimitedtext statt .commatext nehmen.


Zuletzt bearbeitet von Narses am Do 06.01.05 17:35, insgesamt 1-mal bearbeitet
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 06.01.05 17:23 
Aus Encodierungsgründen zerlegt CommaText deinen String in mehrere einzelne Teile. Enthalten diese Leerzeichen oder Sonderzeichen, wird der String automatisch in Anführungszeichen eingeschlossen. Zum Beheben einfach deinen Text aus der INI lesen und an CommaText zuweisen.
Danach kannst du ganz normal wieder damit arbeiten.

Ansonsten wie schon oben gesagt, die Trennzeichen und Anführungszeichen der Stringlist ändern.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.