1) The search string in Split (your trenner$) is a regular expression. In a regular expression, "|" means "or". You are telling Split to split on "nothing or nothing". There is nothing between any two characters, so it splits every character into a separate array element.
To fix it, you need the regular expression parser to see "\|" -- the backslash "escapes" the bar so it is just a character, not the or operator. However, to get the "\" through the BASIC! parser, you have to escape it, too: "\\|".
One '\' for the BASIC! parser and one more for the regular expression parser, then you can use "|" as a delimiter:
komplett$ = "Daniel|Sch|Stremail@example.com|+492|+491|07.04.1982"
trenner$ = "\\|"
As it says in the manual:
De Re Basic! wrote:
The <test_sexp> is actually a Regular Expression. If you are not getting the results that you expect from the <test_sexp> then you should examine the rules for Regular Expressions".
2) The search string is a regular expression. You just have to find a regular expression that matches everything you want to split on.
If you say you want to split on "|", then two delimiters together "||" each match the search string, and the nothing between them becomes an empty array element.
But if you tell it to split any time it finds one or more "|", then "|" is a single delimiter, and "||" is a single delimiter, and "|||" is a single delimiter, and so on.
In a regular expression "+" means "one or more":