Ver Mensaje Individual
  #5  
Antiguo 02-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
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;

Última edición por seoane fecha: 02-08-2006 a las 16:18:58.
Responder Con Cita