So aber:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s: String; i: Char;
begin
s := Edit1.Text;
s := StringReplace(s, #35, '#'+';', [rfReplaceAll]);
s := StringReplace(s, #38, '&'+';', [rfReplaceAll]);
s := StringReplace(s, #59, ';'+';', [rfReplaceAll]); //jeweils das '+' weglassen!
For i := Low(Char) to High(Char) do
if not (i in [#35, #38, #59]) then //das muss doch hin!
s := StringReplace(s, i, '&#'+IntToStr(Ord(i))+';',[rfReplaceAll]);
Memo1.Text := s;
end;
Wobei man noch die Zahlen berücksichtigen muss.
Genauso wie die Zeichen #35, #38, #59 sollte man auch die Zahlen #48..#57 behandeln.
Ich würde trotzdem Hawkeye's Code bevorzugen...