Hello Ismael,
Friday, December 4, 2009, 6:19:02 PM, you wrote:
ILDGa> Si eso era lo que necesitaba (UTF8ToAnsi), pero sigo ahora con otro
ILDGa> problema.
ILDGa> i := ord(UTF8ToAnsi(AnsiMidStr('text1', 1, 1)));
ILDGa> unit1.pas(39,8) Error: Ordinal expression expected
UTF8ToAnsi devuelve una string, una string puede tener m�s de 1 caracter, por lo tanto "ord" no puede actuar sobre �l, tendr�s que decirle que quieres acceder al primer car�cter:
i := ord(UTF8ToAnsi(AnsiMidStr('text1', 1, 1)) [1] );
No se que es lo que pretendes conseguir, pero me parece que te est�s liando un poco para obtener tu objetivo. Otra forma de escribir eso ser�a (siempre que uses una variable, no 'text1'):
if Length(MiStr)>0 then begin
i := ord(MiStr[1]);
end;
Si MiStr la has asignado antes:
MiStr := UTF8ToAnsi('Hola �����u��');
if Length(MiStr)>0 then begin
i := ord(MiStr[1]);
end;
Si MiStr la has asignado desde un componente visual tipo Edit:
MiStr := UTF8ToAnsi(Edit1.Text);
if Length(MiStr)>0 then begin
i := ord(MiStr[1]);
end;
El "if Length(MIStr)>0" es necesario ya que si la cadena es '' el acceso al primer caracter dar�a un SIGSEGV; ejemplo:
MiStr:='';
i := odr(MiStr[1]);
Best regards,
JoshyFun