PDA

Ver la Versión Completa : La función Ord()


soul6301
25-06-2004, 00:20:48
Hola:

Tengo un problema. Quería hacer un programa en el cual ingrese una letra en un componente TEdit y me aparezca su valor en código Ascii. Traté usando la siguiente sentencia:

Label1.Caption:= Ord(LeftStr(Edit1.Text,1));

Mi idea es obtener la primera letra del campo Edit1 y mostrar su código Ascii, pero me aparece un error de compatibilidad. Pensé que usando Ord() me sería sencillo, pero sólo acepta variable de Char. ¿Alguien puede ayudarme a realizar mi programa?

Gracias

roman
25-06-2004, 00:53:30
El problema es que LeftStr devuelve un valor de tipo String y aunque tú solo extraes un caracter la función Ord no puede saberlo.

En lugar de eso usa:


if Edit1.Text <> '' then
Label1.Caption := IntToStr(Ord(Edit1.Text[1]));


Nota que te corregí tres cosas. Primero cambié LeftStr(Edit1.Text, 1) por Edit1.Text[1] para obtener el primer caracter. Segundo, de cualquier forma no te iba a compilar por que Ord devuelve un entero y Caption es un String así que hay que convertir con IntToStr. Tercero, me aseguro que Edit1.Text no se vacío para que no te salte una excepción al intentar acceder a su primer caracter.

// Saludos

soul6301
27-06-2004, 01:43:17
(Ches!) Hola:

Tienes razón. Bueno, respecto a primero transformar el valor de Ord desde integer a string lo había hecho en mi programa, pero al pedir ayuda, me olvidé de escribirla. Gracias, de seguro tu consejo me será útil.

Saludos.