Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit Commatext in Listbox (https://www.delphipraxis.net/75095-problem-mit-commatext-listbox.html)

kaiser1401 14. Aug 2006 12:48


Problem mit Commatext in Listbox
 
Hallo Leute,

ich habe da ein kleines Proplem mit dem einlesen eines commatextes in eine Listbox.
Ich habe folgenden eintrag in einer Inidatei
Code:
[Sektion]
Name="18 Postkorb c"
erstellt ist der eintrag mit

Delphi-Quellcode:
ini.WriteString('Sektion','Name',ListBox1.Items.CommaText);
wenn ich ihn nun hiermit auslesen will:

Delphi-Quellcode:
Listbox1.Items.CommaText:=ini.ReadString('Sektion','Name','');
habe ich das Problem das in der Listbox drei Einträge vorhanden sind:
18
Postkorb
c

Vor dem Wegschreiben war das ein Eintrag!

kann mir jemand sagen woran das liegen könnte?

vielen Dank schonmal

Kaiser

Sidorion 14. Aug 2006 13:40

Re: Problem mit Commatext in Listbox
 
Online-Hilfe(zu TStrings):
Zitat:

Wenn die Eigenschaft CommaText gelesen wird, gelten folgende Konventionen: Jeder Eintrag der String-Liste, der Leerzeichen, Kommas oder Anführungszeichen enthält, wird in Anführungszeichen (") gesetzt. Ist ein Anführungszeichen (") selbst Teil eines Strings, wird es verdoppelt.
und:
Zitat:

Wenn eine Wertzuweisung an CommaText erfolgt, wird der Wert entsprechend dem SDF-Format zerlegt. Dies setzt voraus, dass Zeichenketten durch Kommas oder Leerzeichen getrennt und optional in Anführungszeichen eingeschlossen sind. Anführungszeichen, die Teil des Strings sind, müssen zweimal hintereinander stehen (""), sonst werden sie als Begrenzungszeichen interpretiert. Leerzeichen und Kommas, die nicht von Anführungszeichen eingeschlossen sind, werden als Trennzeichen behandelt. Zwei aufeinander folgende Kommas gelten als Leer-String. Leerzeichen, die unmittelbar vor oder nach einem Trennzeichen stehen, werden dagegen ignoriert.

kaiser1401 14. Aug 2006 13:43

Re: Problem mit Commatext in Listbox
 
Ok, Problem gefunden:

bei Commatext wird als QuoteChar ein " verwendet welches auch in der Ini eine gewisse Bedeutung hat.
Deshalb kommt es zu Problemen beim Auslesen des Strings aus der Ini. Umgehen kann man das Problem indem man anstatt Commatext Delimeteredtext verwendet und manuell das Quotechar setzt. Zum Beispiel auf ein "!".

Hawkeye219 14. Aug 2006 13:48

Re: Problem mit Commatext in Listbox
 
Hallo Kaiser,

beim Einlesen aus einer .ini-Datei mittels ReadString werden leider die Anführungszeichen vernichtet (klick), du mußt sie vor dem Zuweisen wieder ergänzen.

Delphi-Quellcode:
Listbox1.Items.CommaText := '"' + ini.ReadString('Sektion','Name','') + '"';
Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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