TStringList クラスの区切り文字に問題があります。見てみましょう:
var
s: string;
sl: TStringList;
begin
sl := TStringList.Create;
s := 'Users^foo bar^bar foo^foobar^barfoo';
sl.Delimiter := '^';
sl.DelimitedText := s;
ShowMessage(sl[1]);
end;
sl[1]
戻る必要があります'foo bar'
sl[1]
戻る'foo'
区切り文字が'^'
ANDになったようです' '
何か案は?