Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delimiter macht nicht das was er soll (https://www.delphipraxis.net/84374-delimiter-macht-nicht-das-er-soll.html)

JPSelter 16. Jan 2007 08:23


Delimiter macht nicht das was er soll
 
Ich möchte eine Reihe von Namen kommagetrennt eintippen und später in einer Memo-Komponente untereinander ausgeben. Dazu habe ich folgenden Code:

Delphi-Quellcode:
var temp: TStrings;
temp:=TStringList.Create;
temp.Delimiter:=',';
temp.DelimitedText:=string_mit_namen;
for i := 0 to temp.count-1 do
  Form1.Memo1.Lines.Add(temp.Strings[i]);
Das Problem ist hier, dass er auch bei Leerzeichen trennt, nicht nur bei Kommata. Aber wieso? So ergibt

Zitat:

ich du er, sie, es

ich
du
er
sie
es
Aber wieso?

dfried 16. Jan 2007 08:35

Re: Delimiter macht nicht das was er soll
 
Zitat:

Zitat von JPSelter
Aber wieso?

Aus der OH:
Zitat:

Wenn Sie DelimitedText einen Wert zuweisen, müssen die einzelnen Strings zwischen dem in QuoteChar festgelegten Zeichen stehen oder mit dem in Delimiter
definierten Trennzeichen voneinander getrennt werden. Die beiden Methoden können auch gleichzeitig verwendet werden.
Du musst deine Strings also noch mit "QuotedChar" umschliessen, dann sollte es gehen.

Klaus01 16. Jan 2007 08:38

Re: Delimiter macht nicht das was er soll
 
Das ist ein Bug/Feature in der TStringList.
Ist so weit ich es weiß in der 2006er Version behoben.
Hier hast Du nur die Möglichkeit,
- einen eigenen Zerlegemechanismus zu schreiben
- ein funktuionsfähigen hier im Forum zu suchen
- die Leerzeichen im string_mit_namen durch ein Zeichen ersetzen welches nicht im Textvorkommt z.B: '#' oder '@'

Grüße
Klaus

sirius 16. Jan 2007 08:39

Re: Delimiter macht nicht das was er soll
 
dfried's Variante ist die eine, oder du benutzt die neueste VErsion von Delphi (2006 oder Turbo) und da gibts die Eigenschaft StrictDelimiter.
Ansonsten werden alle ASCII-Zeichen bis zum Leerzeichen + dein Delimiter als Trennzeichen angesehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz