versión 11 (Modificado)
Character code (unCaracter) Numérico
Parámetro | Tipo | Descripción | |
unCaracter | Alfa | Caracter para el cual obtener el código | |
Resultado | Numérico | Código del caracter |
Descripción
El comando Character code devuelve el código del carácter actual de unCaracter.
Si la base funciona en modo Unicode (modo por defecto para las bases creada a partir de la versión 11 de 4D), el comando devuelve el código Unicode UTF-16 de unCaracter (entre 1 y 65535).
Si la base funciona en modo compatibilidad ASCII, el comando devuelve el código ASCII de unCaracter (entre 0 y 255).
Para mayor información sobre los diferentes modos para la gestión de cadenas en 4D, consulte la sección Acerca de Unicode.
Si hay más de un carácter en la cadena, Character code devuelve únicamente el código del primer carácter.
La función Char es la contraparte de Character code. Devuelve el carácter que un código UTF-16 o ASCII representa.
Importante: En modo compatibilidad ASCII, todos los valores de texto, campos o variables, utilizan la tabla ASCII de Mac OS, en las plataformas Macintosh y Windows si no se ha efectuado ninguna conversión a otra tabla ASCII. Para mayor información, consulte la sección Códigos ASCII.
Ejemplos
1. Los caracteres en mayúsculas y minúsculas se consideran iguales en una comparación. Puede utilizar Character code para diferenciar entre los caracteres en mayúsculas y en minúsculas. Por lo tanto, esta línea devuelve True:
("A" = "a")
Por otra parte, esta línea devuelve False:
(Character code("A")=Character code("a"))
2. Este ejemplo devuelve el código del primer carácter de la cadena "ABC":
RecupCod:=Character code("ABC") ` RecupCod toma el valor 65, el código del carácter de A
3. El siguiente ejemplo prueba los retornos de carro y los tabuladores:
For($vlCar;1;Length(vtText)) Case of : (vtText[[$vlCar]]=Char(Carriage return)) ` Hacer algo : (vtText[[$vlCar]]=Char(Tab)) ` Hacer otra cosa : (...) ` ... End case End for
Cuando se ejecuta muchas veces en textos largos, se ejecutará más rápido, una vez compilado, si se escribe de esta forma:
For($vlCar;1;Length(vtText)) $vlCode:=Character code(vtText[[$vlCar]]) Case of : ($vlCode=Carriage return) ` Hacer algo : ($vlCode=Tab) ` Hacer otra cosa : (...) ` ... End case End for
La segundo código se ejecuta más rápido por dos razones: sólo referencia un carácter por iteración y utiliza comparaciones de enteros largos en lugar de comparaciones de cadenas para probar los retornos de carro y las tabulaciones. Utilice esta técnica cuando trabaje con códigos comunes tales como CR y TAB.
Ver también
Char, Códigos ASCII, Símbolos de referencia de caracteres.