Autor Beitrag
JanHH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46
Erhaltene Danke: 1



BeitragVerfasst: Fr 21.05.04 01:47 
Hallo,

die TStringList verhält sich bei Verwendung von DelimitedText nicht so wie ich es eigentlich erwarten würde. Es wird nicht nur das Trennzeichen (Delimiter) als Trennzeichen verwendet, sondern auch Leerzeichen. Beispiel:

ausblenden Delphi-Quelltext
1:
2:
3:
myStringList.Delimiter := ';';
myStringList.DelimitedText := 'a;b und c;d';
showMessage(myStringList.Text);


dann ist das Resultat nicht, wie ich eigentlich erwarten würde
a
b und c
d

sondern
a
b
und
c
d

.

Soll das so? Find ich ja echt seltsam, was kann man denn da machen?

Gruß
Jan

Moderiert von user profile iconPeter Lustig (08:18, 21.05.2004): Delphi-Tags hinzugefügt
Moderiert von user profile iconPeter Lustig (13:37, 21.05.2004): Topic verschoben (beim ersten Mal übersehen)
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Fr 21.05.04 08:03 
Hallo,

ob das so sein soll, wird wohl nur Borland wissen :wink:.

Wenn Du die einzelnen Textteile in Anführungszeichen setzt, funktioniert es:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  myStringList.Delimiter := ';';
  myStringList.QuoteChar:='"';
  myStringList.DelimitedText := '"a";"b und c";"d"';
  showMessage(myStringList.Text);

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Fr 21.05.04 08:31 
QuoteChar ist default auf " gesetzt.

Warum es zu dem Ergebnis kommt, wenn wie im Anfangsbeispiel gar kein QuoteChar vorkommt, sagt auch die Hilfe nicht.
MartinPb
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 698



BeitragVerfasst: Fr 21.05.04 11:29 
Alternativ kannst du auch mit

ausblenden Delphi-Quelltext
1:
StringList.CommaText := 'a;b und c;d';					

arbeiten. Guck ob das was bringt.

Das funktioniert übrigens:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
s := 'a;b und c;d';
s := '"' + s + '"';
s := StringReplace(s, ';', '","', [rfReplaceAll]);

myStringList.CommaText := s;
showMessage(myStringList.Text);

_________________
Gruß
Martin