[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