Ich habe nicht gesehen, dass Uwe nicht auf meine Fragestellung eingegangen ist...
Schon, wenn man nicht nur das Verhalten der TStringList in Frage stellen will, sondern eine Lösung für das Split-Problem möchte:
Ich finde, der String-Helper macht das schon ganz gut
Hier übrigens der Code erweitert für das Quotes oder Nicht-Quotes Problem
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;