Hab mir noch nicht alles durchgelesen, aber
Zitat:
Achtung : Die aufrufende Funktion muss sicherstellen, dass S1 und S2 nicht leer sind
warum machst du dann sowas wie
p1:=@s1[1];
?
p1:=PChar(s1);
= fertig und keine Probleme mehr, wenn man nun auch noch auf #0 prüft oder bei den Berechnungen für n1/n2 etwas aufpaßt.
Zitat:
n1:=PChar(s1)+(Length(s1)-1)-p1;
(ich hoff mal die -1 stimmt)