Autor Beitrag
LuMa86
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Mi 12.06.13 18:02 
Moin,
ich versuche gerade den Inhalt einer TListView Komponente in einer Datei zu speichern. Dazu verwende ich diesen Code: www.swissdelphicente.../showcode.php?id=729

Allerdings geht an irgendeiner stelle etwas schief, ich kann es mir aber einfach nicht erklären, daher mal der Eintrag bevor er entfernt und aus der Datei wieder geladen wird (im Anhang).

Grüße,
LuMa

[EDIT] Offenbar wird der Inhalt beim speichern "verstümmelt". Die Datei hat schon dieselben Macken, wie man sie auch später im ListView sieht.
Einloggen, um Attachments anzusehen!
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mi 12.06.13 18:45 
Ich nehme mal an, Deine Delphi-Version ist >= 2009? Dann wird es daran liegen, dass der gezeigte Code wohl nicht Unicode-fähig ist (ich tippe auf das StrAlloc).
haentschman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: Fr 14.06.13 12:41 
Moin... 8)

wobei hier wieder einmal zu erwähnen sei, daß die Datenhaltung von der GUI getrennt sein sollte. Das würde bedeuten, daß die Items der Listview in einer seperaten "Datenstruktur" vorgehalten werden. Diese gilt es dann zu speichern und zu laden. :zwinker:
LuMa86 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Do 27.06.13 20:29 
Uppss... Hab den Thread irgendwie vergessen :oops: Also ich habe einen anderen Code gefunden. Wie schon beschrieben lag es an meiner Delphi Version und dem Unicode Problem.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.06.13 06:39 
Um genau zu sein liegt es an diesen Zeilen:
ausblenden Delphi-Quelltext
1:
F.Write(pText^, w);					
Beim Lesen und bei den anderen Spalten natürlich genauso. Statt w muss die Länge des Strings mit der Größe eines Buchstabens in Bytes benutzt werden:
ausblenden Delphi-Quelltext
1:
F.Write(pText^, w * SizeOf(Char));					

Trotzdem hat user profile iconhaentschman natürlich Recht: So ist der Code ziemlich unsauber geschrieben, weil die Daten ist der Listview auch gespeichert werden. Normal wäre, dass sie in einer Liste liegen, dort geladen und gespeichert werden und in der Listview nur angezeigt werden.

Für diesen Beitrag haben gedankt: LuMa86