Könnte man das nicht irgendwie
OOP sauber lösen, anstatt so eine Stringlist Orgie?
Man erstellt ein Objekt für eine Person mit den Benötigten Feldern, übergibt dann den jetzigen langen String für eine Person an das Objekt. Darin wird der String zerlegt und auf die Felder verteilt. Dann kriegt das Objekt noch eine ToCSVString Funktion oder so, die das in der richtigen Reihenfolge mit Semikolon getrennt raus gibt.
Bei der Zerlegung des String bleiben natürlich trotzdem die bisher genannten Probleme zu Unterscheiden, was was ist.