[Lazarus-es] Fw: Funcion para convertir de caracter a ascii
JoshyFun
joshyfun en gmail.com
Vie Dic 4 21:53:37 CET 2009
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
More information about the Lazarus-es
mailing list