schau dir mal "stringreplace" an!
natürlich gibt es eine endlosschleife, er findet immer wieder das erste '&', auch wenn du es ersetzt hast!
ich verstehe denn sinn deines codes zwar nicht, warum wird ein '&' mit einem '&' ersetzt?
andere möglichkeit:
Delphi-Quellcode:
for i:=1 to length(s) do
case s[i] of
'&': s[i]:='&';
'<': s[i]:='<';
...
end; // case
[edit]
man sollte auch den text weiterlesen ein helau an marabu [/edit]