Zitat:
if (result[1] = #0) or (b = true) then
Das ist nicht dasselbe wie oben. Das Result[1] zeigt dir nicht an, dass der String leer ist. Das kannst du mit "len = 0" prüfen. Und ein "b = true" kann tötlich enden. Lass einfach das "=true" weg. Und bei "b=false" kann man auch schreiben "not b". Beides ist erstens kürzer und auch irgendwie besser erkennbar.
Zitat:
Delphi-Quellcode:
if result[length(result)] = c then
setlength(result, len-1)
else setlength(result, len);
Das Length(Result) ist zu diesem Zeitpunkt ja nicht zwangsläufig das letzte Zeichen. Das steht nämlich in Result[len]. Und du kannst hier die zwei SetLength aufrufe zu einem machen, indem du bei dem TRUE-Code der if-Abfrage einfach Len dekrementierst. Das ist nämlich der einzige Unterschied zum anderen SetLength() Aufruf.