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

Ismael L. Donis Garc?a ismael en citricos.co.cu
Vie Dic 4 22:26:52 CET 2009


Ya funciona, pero de todos modos te pasa lo función para que me des tu 
opinión de la forma más correcta:

function TForm1.scadena(sdato: string): string;
var
  strencript: string;
  intc, intlon: integer;
begin
  intc := 1;
  intlon := length(sdato);
  for intc := 1 to intlon do
    begin
      strencript := strencript + IntToStr(ord(UTF8ToAnsi(AnsiMidStr(sdato, 
intc, 1))[1]));
    end;
  result := strencript;
end;

Saludos reiterados
=========
¦¦ 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 01:09
Asunto: Re: [Lazarus-es] Fw: Funcion para convertir de caracter a ascii


Hello Ismael,

Friday, December 4, 2009, 7:51:11 PM, you wrote:

ILDGa> Disculpa me había comido al [1] del final
ILDGa>   i := ord(UTF8ToAnsi(AnsiMidStr('é', 1, 1))[1]);

Esto no te funciona por que lo tienes al revés:

i := ord(AnsiMidStr(UTF8ToAnsi('é'), 1, 1)[1]);

El texto "é" en UTF-8 son dos caracteres, si haces el MID 1,1 obtienes
la parte baja del UTF-8. Como lo que creo es que quieres obtener el
código ANSI de "é" en tu codepage, primero debes de pasar el UTF-8 a
ANSI y luego hacer los MID u operaciones que creas oportunas.

Por tu modo de trabajar con strings quizá sería mejor que usaras
WideStrings (UCS-16) (unicode de 2 bytes cada caracter), pero como no
sé exactamente que persigues es difícil recomendarte alguna acción
concreta.

-- 
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