Efectivamente la función decode no va, eso pasa por poner las cosas con prisa.
Ahora si que funciona:
Código Delphi
[-]
function Decode(Str: string): string;
var
i: integer;
begin
Result:= '';
while Length(Str) > 0 do
begin
if not TryStrToInt('$' + Copy(Str, 1, 2),i) then
begin
Result:= '';
Exit;
end;
Result:= Result + Char(i);
Delete(Str, 1, 2);
end;
end;
Para probarla:
Código Delphi
[-]
var
s: string;
begin
s:= Encode('Hola mundo');
ShowMessage(s);
s:= Decode(s);
ShowMessage(s);
end;