![]() |
Delphi-Version: 12 Athens
TStringList, StrictDelimiter, DelimitedText und Leerzeichen
Hallo,
folgende Prozedur:
Code:
Wenn beim Zuweisen zum DelimitedText nach dem Komma Leerzeichen sind, wird der Text nicht wie erwartet zugewiesen obwohl die Hilfe sagt, daß Leerzeichen egal sein sollten.
procedure TForm1.Button1Click(Sender: TObject);
var lStringList: TStringList; begin lStringList := TStringList.Create; try lStringList.StrictDelimiter := true; lStringList.DelimitedText := '"Test 1","Test 2","Test mit , (3)","Test4"'; //Test 1 //Test 2 //Test mit , (3) //Test4 lStringList.DelimitedText := '"Test 1", "Test 2", "Test mit , (3)", "Test4"'; //Test 1 // "Test 2" // "Test mit // (3)" // Test4 finally lStringList.free; end; end; Weiß jemand, was da schief geht? Grüße Stefan |
AW: TStringList, StrictDelimiter, DelimitedText und Leerzeichen
Definiere mal den Delimiter... :wink:
Delphi-Quellcode:
lStringList.Delimiter := ',';
|
AW: TStringList, StrictDelimiter, DelimitedText und Leerzeichen
, als delimiter ist Standard. Da muß ich nichts definieren.
, und ,<leer> oder ,<leer><leer> usw. sollen laut Hilfe keinen Unterscheid machen. Und es sollen ja auch Fälle wie "Test","Test", "Test" usw. behandelt werden |
AW: TStringList, StrictDelimiter, DelimitedText und Leerzeichen
Zitat:
was erwartest du hier als Ausgabe bzw. als "richtigen" Inhalt deiner Stringliste? Sollen die Anführungszeichen enthalten sein oder nicht? |
AW: TStringList, StrictDelimiter, DelimitedText und Leerzeichen
Zitat:
Delphi-Quellcode:
bedeutet doch nur, dass das Leerzeichen kein Trennzeichen ist, sondern wie behandelt wird wie jedes andere Zeichen auch. Also alles was nach dem Trennzeiczhen kommt, gehört zur neuen Zeile, auch das Leerzeichen.
StrictDelimiter := true
|
AW: TStringList, StrictDelimiter, DelimitedText und Leerzeichen
Was wenn du QuoteChar explizit setzt?
|
AW: TStringList, StrictDelimiter, DelimitedText und Leerzeichen
Ich erwarte als Ausgabe wie es per Definition sein sollte und wie es ohne Leerzeichen nach dem Komma auch funktioniert:
Test 1 Test 2 Test mit , (3) Test4 In der Hilfe steht: When assigning DelimitedText, the value is parsed as SDF formatted text. For SDF format, strings are separated by Delimiter characters or spaces, and optionally enclosed in QuoteChar characters. QuoteChar marks that are part of the string are repeated to distinguish them from the QuoteChar characters that surround the string. Spaces and Delimiter characters that are not contained within QuoteChar marks are delimiters. Two Delimiter characters next to each other will indicate an empty string, but spaces that appear next to another Delimiter character are ignored. Das feet markierte interpretiere ich so, daß Leerzeichen und Kommas potentielle Delimter sind wobei Delimiter=',' ist und damit Leerzeichen außerhalb von "" ignoriert werden sollten. Aber das ist nur meine Interpretation... |
AW: TStringList, StrictDelimiter, DelimitedText und Leerzeichen
Zitat:
Da du StrictDelimiter auf true gesetzt hast, ist das Leerzeichen nach dem Trennzeichen ein ganz normales Zeichen und wird nicht ignoriert. |
AW: TStringList, StrictDelimiter, DelimitedText und Leerzeichen
Zitat:
Delphi-Quellcode:
weglässt. Siehe Beitrag von bcvs.
StrictDelimiter := True
|
AW: TStringList, StrictDelimiter, DelimitedText und Leerzeichen
Es ist so wie es ist aber kompatibel zu Excel ;)
Habe gerade Mal getestet mit ";" anstatt "," wegen deutschem Excel. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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