[Lazarus-es] Fw: Funcion para convertir de caracter a ascii

Ismael L. Donis Garc?a ismael en citricos.co.cu
Lun Dic 7 16:36:15 CET 2009


No, no tiene que ser reversible.

El ejemplo que me envías da al final un cuadrito que no he podido quitar. Me 
podrías ayudar en ello, además le tuve que arreglar el nombre de unas 
variables (cambiar j por i), pero eso fue un error mínimo.

Saludos
=========
¦¦ ISMAEL ¦¦
=========
----- Mensaje original ----- 
De: "JoshyFun" <joshyfun en gmail.com>
Para: "Spanish version of Lazarus List" 
<lazarus-es en lists.lazarus.freepascal.org>
Enviado: viernes, 04 de diciembre de 2009 02:53
Asunto: Re: [Lazarus-es] Fw: Funcion para convertir de caracter a ascii


Hello Ismael,

Friday, December 4, 2009, 10:26:52 PM, you wrote:

ILDGa> Ya funciona, pero de todos modos te pasa lo función para que me des 
tu
ILDGa> opinión de la forma más correcta:
ILDGa> function TForm1.scadena(sdato: string): string;
ILDGa> var
ILDGa>   strencript: string;
ILDGa>   intc, intlon: integer;
ILDGa> begin
ILDGa>   intc := 1;
ILDGa>   intlon := length(sdato);
ILDGa>   for intc := 1 to intlon do
ILDGa>     begin
ILDGa>       strencript := strencript +
ILDGa> IntToStr(ord(UTF8ToAnsi(AnsiMidStr(sdato,
ILDGa> intc, 1))[1]));
ILDGa>     end;
ILDGa>   result := strencript;
ILDGa> end;

No entiendo bien que quieres obtener, ya que el resultado de esto no
parece bidireccional, esto es, no puedes obtener la cadena orginal a
partir del resultado. Para que sea rápida y efectiva yo la haría así:

function TForm1.scadena(sdato: string): string;
var
  AnsiStr,TempStr: ansistring;
  i,k,v: SizeInt;
begin
  AnsiStr:=UTF8ToAnsi(sDato);
  SetLength(Result,Length(AnsiStr)*3));
  k:=1;
  for i:= 1 to Length(AnsiStr) do begin
    v:=ord(AnsiStr[j]);
    TempStr:=IntToStr(v);
    move(TempStr[1],Result[k],Length(TempStr));
    inc(k,Length(TempStr));
  end;
  SetLength(Result,k);
end;

-- 
Best regards,
 JoshyFun


_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es






More information about the Lazarus-es mailing list