Da
Explode keinen Quote kennt, teilt es an jedem Delimiter,
selbst wenn der in einem "Qoute" (was es ja nicht beachtet) drin wäre.
Also die beiden obrigen Beispieltext würden wie gewünscht geteilt (allerdings die QuoteChars noch enthalten), aber
Delphi-Quellcode:
ts.DelimitedText := '"Spalte 1"~"Spalte~2"~"Spalte 3"';
showMessage(IntToStr(ts.Count)); {Ergibt 4, statt 3}