Dabei kommt keine Warnung, das muss anders ausgesehen haben. (Habs extra getestet)
Es fehlt ein END, das vom CASE, wenn ich das letzte END der Funktion zuschreibe.
Und ich würde wenigstens eine Meldung beim ersten
Result := ''
erwartet. (wurde zugewiesen aber nicht verwendet)
Ansonsten ist hier der String (gemanagte Typ) ein Problem, der per se immer initialisiert ist, entgegen einem Integer-Result.
Nur ist der eben extern initialisiert und das kann probleme geben, wenn der String wiederverwendet oder in einer Schleife genutzt wird.