Si comprendo bien lo que quieres hacer, que puede que me equivoque, lo que necesitas es a partir de una cadena de texto obtener otra donde cada letra esta identificada por su código ASCII, y luego realizar el proceso contrario. Esto me recuerda bastante al urlencode / urldecode que se utiliza para las direcciones url, donde los caracteres problemáticos se sustituyen por su valor ASCII precedido del símbolo %. Supongo, y estoy adivinando, que tu te encuentras en el mismo caso, necesitas enviar / guardar una cadena por algún método que solo permite un cierto tipo de caracteres y necesitas poder tratar con los caracteres problemáticos.
Si ese es tu caso te recomiendo el
truco 62, que hace eso mismo. Aunque si lo que quieres es convertir todos lo caracteres y no utilizar el %, puedes usar algo como esto:
Código Delphi
[-]
function Encode(Str: string): string;
var
i: integer;
begin
Result:= '';
for i:= 1 to Length(Str) do
Result:= Result + IntToHex(Ord(Str[ i ]),2);
end;
function Decode(Str: string): string;
var
i: integer;
begin
Result:= '';
while Length(Str) > 0 do
begin
if not TryStrToInt('$' + Copy(Str, 2, 2),i) then
begin
Result:= '';
Exit;
end;
Result:= Result + Char(i);
Delete(Str, 1, 2);
end;
end;