AthenaOfDelphi's and consequently Arthurps's code for some reason separate also by the "." character, which makes it impossible to parse floating point values (think "123.45" ) and also "0D0A" newlines which isnt neccesary but they dont parse the tab #09.
This is easy to fix tho just by removing extra IF condition.

Arthurps's code also doesnt parse properly if you use several separators to separate values (think grid space / tab aligned values): it produces empty values in the array.

So correct characters for separating should be:
(aChar = (' ')) or (aChar = (';')) or
(aChar = (',')) or (aChar = (#09))

I didn't test User137 and Brainer's code since they use classes.