![]() |
String splitten in TArray<string>
Wenn ich es richtig sehen, nutzen viele eine TStringliste um aus einem String mit Delimiter ein TArray<String> zu machen.
Die Stringliste sieht - wie wahrscheinlich viele das Ende eines Strings an, wenn es ein #0 findet. Ein:
Delphi-Quellcode:
Würde also ein Array erzeugen
Var
S : String; A : TArray<String>; begin S := 'Frank;Pet'+#0+'er;Elke'; A := Split(S,';'); end;
Delphi-Quellcode:
Für viele Anwendungen währe das sicherlich ok, weil Strings i.d.R. kein #0 enthalten...
['Frank','Pet']
Was ist mit
Delphi-Quellcode:
Soll das
Split('Frank;"Peter";Elke');
Delphi-Quellcode:
ergeben oder doch eher
['Frank','Peter','Elke']
Delphi-Quellcode:
?
['Frank','"Peter"','Elke']
Weil wenn ich einen String habe:
Delphi-Quellcode:
möchte ich doch lieber das Array
'Frank;Delimiter können ";" oder auch ",";sein'
Delphi-Quellcode:
haben.
['Frank','Delimiter können ";" oder auch ","','sein']
Oder? Grüsse Mavarik :coder' |
AW: String splitten in TArray<string>
Ich finde, der String-Helper macht das schon ganz gut:
Delphi-Quellcode:
procedure Main;
Var S : String; A : TArray<String>; begin S := 'Frank;Pet'+#0+'er;Elke'; A := S.Split([';']); Assert(Length(A) = 3); S := 'Frank;Delimiter können ";" oder auch ",";sein'; A := S.Split([';',','], '"', '"'); Assert(Length(A) = 3); end; |
AW: String splitten in TArray<string>
Zitat:
Bei dir bricht er nicht beim #0 ab? Es ging mir auch nicht darum, das es verschiedene Delimiter gibt, sondern ob ich erwarte die QuoteChars im finalen Array zu haben oder nicht! |
AW: String splitten in TArray<string>
Zitat:
|
AW: String splitten in TArray<string>
Hallo Frank,
im Beispiel von Uwe bricht er bei mir beim dem #0 auch nicht ab sondern nimmt es mit in den String. Eventuell ein Unterschied zwischen 10.3 und 10.4? |
AW: String splitten in TArray<string>
Zitat:
Mavarik |
AW: String splitten in TArray<string>
Liste der Anhänge anzeigen (Anzahl: 1)
10.4.2
|
AW: String splitten in TArray<string>
Du benutzt ja auch nicht Uwes Code, sondern eine Stringliste.
|
AW: String splitten in TArray<string>
Zitat:
Ich habe nicht gesehen, dass Uwe nicht auf meine Fragestellung eingegangen ist... Zitat:
Das klärt es! |
AW: String splitten in TArray<string>
Zitat:
Zitat:
Delphi-Quellcode:
Var
S : String; A : TArray<String>; begin S := 'Frank;Pet'+#0+'er;Elke'; A := S.Split([';']); Assert(Length(A) = 3); S := 'Frank;"Peter";Elke'; A := S.Split([';']); Assert(Length(A) = 3); Assert(A[1] = '"Peter"'); A := S.Split([';"', '";', ';']); // Reihenfolge ist wichtig! Assert(Length(A) = 3); Assert(A[1] = 'Peter'); S := 'Frank;Delimiter können ";" oder auch ",";sein'; A := S.Split([';',','], '"', '"'); Assert(Length(A) = 3); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 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 by Thomas Breitkreuz