BotonMenu
BotonIndice

Visita : http://www.conoce3000.com
Paypal : https://www.paypal.me/conoce3000/1

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL


2. TIPOS DE DATOS SIMPLES.
2.5. CARACTERES.
2. TIPOS DE DATOS SIMPLES.
2.5. CARACTERES.
2. TIPOS DE DATOS SIMPLES.
2.5. CARACTERES.

SIGUIENTE

SIGUIENTE

SIGUIENTE


‒ Caracteres.

Estos tipos de datos se usan para guardar valores definidos en una codificación de caracteres, como el ASCII,  iso-8859-1, Win-1252, IBM 437, BMP de UNICODE, y otras codificaciones de caracteres de 8 y 16 dígitos binarios. Los códigos ASCII son una codificación de caracteres de 7 dígitos binarios, que permiten representar 128 caracteres desde 0 hasta 127, los códigos Win-1252, iso-8859-1, IBM 437 son codificaciones de caracteres de 8 dígitos binarios y pueden representar 256 caracteres, desde 0 hasta 255. Unicode es actualmente una codificación de caracteres de 24 dígitos binarios, que sólo cubre un rango de 0 hasta $10FFFF, (0 hasta 1 114 111), que nos permite representar alrededor  de 1 114 112 caracteres. Unicode agrupa su codificación de caracteres en Planos y uno de ellos es el Plano 0, conocido como BMP (Basic Multilingual Plane) que se usa para representar 65536 caracteres, desde 0 hasta 65535 (16 bits=2 bytes). Los tipos de datos soportados por el compilador son los siguientes:


‒ Caracteres
Identificador Desde Hasta Tamaño en bytes

Char

0 255 1 byte

AnsiChar

0 255 1 byte

WideChar

0 655535 2 bytes


Char y Ansichar se usan para guardar o almacenar caracteres de 1 byte (8 dígitos binarios), como pueden ser los caracteres de las siguientes codificaciones: ASCII (7 bits), iso-8859-1 (1 byte), Windows-1252 (1 byte), IBM 437 (1 byte), etc. A estos tipos de datos sólo se les puede asignar un sólo carácter o símbolo entre comillas simples, del siguiente modo: a:='A', y también se puede asignar escribiendo su código después de colocar el símbolo #, del siguiente modo: a:=#65 en decimal ó a:=#$41 en hexadecimal. A continuación un ejemplo:


Descargar
{$codepage UTF8}

VAR Letra01 : Char;

BEGIN
  Letra01:='A';
  Writeln(Letra01);
  Letra01:=#65;
  Writeln(Letra01);
  Letra01:=#$41;  //hexadecimal
  Writeln(Letra01);
  readln
END.
Código fuente 3: Uso de char y #.
Descargar

Si queremos mostrar caracteres muy particulares de otras codificaciones de caracteres de 8 bits, como los bordes para recuadros que tiene la codificación de caracteres IBM 437, entonces es mejor escribir sus códigos y no asignar los caracteres directamente. Por ejemplo el siguiente carácter '╦' en IBM 437 tiene el código: #203, pero en UTF8 será #$E295A6, y si asignamos el carácter directamente del siguiente modo: a:='╦'; entonces el administrador de caracteres (Ver capitulo 2.6 Administrador de caracteres) convertirá el carácter a la codificación de caracteres que use por defecto el Sistema Operativo, en caso de no ser representable entonces asigna un signo de interrogación #$3F. Ejemplo:


Descargar
{$codepage UTF8}

VAR a:char;

BEGIN
  a:='╦';       //#$E295A6 en UTF8, #$2566 en BMP
  Writeln(a);    //Asignará un signo de interrogación en Linux y Windows
                 //si la codificación de caracteres del S.O. no es IBM 437
 
  a:=#203;       //Asignará el código sin tomar en cuenta al administrador de carateres
  Writeln(a)     //Mostrará ╦ siempre y cuando el interprete de comandos este usando
                 //la codificación de caracteres IBM 437 
END.
Código fuente 4: Uso de caracteres particulares con la codificación de caracteres IBM 437.
Descargar

Para cambiar la codificación de caracteres del intérprete de comandos en Windows a IBM 437, se debe usar la siguiente orden: chcp 437, en el caso de Linux si usan el terminal de Gnome entonces se hace a través del siguiente menú Terminal->Establecer codificación de caracteres. En capítulos anteriores hemos visto el tipo de dato String, este tipo de dato es una secuencia de datos de tipo Char, que se conoce como cadena de caracteres y es por eso que a una variable de tipo String podemos asignar entre comillas simples más de un carácter.

Widechar se usa para guardar o almacenar caracteres de 2 bytes (16 dígitos binarios), como son los caracteres del plano BMP de Unicode o el uso del Formato de transfomación Unicode UTF16, pero sólo para caracteres de 2 bytes, del mismo modo que los tipos de datos char y ansichar, se les puede asignar un sólo carácter entre comillas simples, y también se puede asignar escribiendo su código después de colocar el símbolo #, en decimal ó hexadecimal.

Los caracteres o símbolos que se asignen a una variable de tipo widechar, son convertidos de UTF8 a UTF16 de dos bytes, para poder almacenarlos en la variable de tipo widechar. Es decir si asignamos el símbolo del Euro, a una variable de tipo widechar, entonces el código en UTF8: #$E282AC, se convertirá a #$20AC y luego se asignará a la variable el código convertido. Ejemplo:


Descargar
{$codepage UTF8}

VAR a,b,c,d,e:widechar;

BEGIN
  a:='E';        //#$0045 en UTF8, #$0045 en BMP
  Writeln(a);    //Mostrara E, en Linux y Windows 


  b:='€';        //#$E282AC en UTF8, #$20AC en BMP
  Writeln(b);    //Mostrara € en Win-1252, en Linux signo de ?, por ser mayor a #$00FF


  c:='Ж';        //#$D096 en UTF8, #$0416 en BMP
  Writeln(c)     //Mostrara ? en Win-1252, en Linux signo de ?, por ser mayor a #$00FF 


  d:='ñ';        //#$C3B1 en UTF8, #$00F1 en BMP
  Writeln(d);    //Mostrara ñ en Win-1252,
                 //Mostrara blanco o nada en Linux, #$F1, no es un caracter valido en UTF8
   
  e:='ÿ';        //#$C3BF en UTF8, #$00FF en BMP 
  Writeln(e);    //Mostrara ÿ en Win-1252, 
                 //Mostrara blanco o nada en Linux, #$FF, no es un caracter valido en UTF8


  f:='石';       //#$E79FB3 en UTF8, #$77F3 en BMP 
  Writeln(f);    //Mostrará ? en Win-1252, en Linux signo de ?, por ser mayor a #$00FF
END.
Código fuente 5: Asignación de caracteres UTF8 con Widechar.
Descargar

Las rutinas write y writeln sólo permiten mostrar caracteres que sean representables en una codificación de 8 dígitos binarios (ASCII, iso-8859-1, Win-1252, IBM 437, etc), y cuando se usan variables de tipo Widechar con estas rutinas entonces el administrador de caracteres (Ver capitulo 2.6 Administrador de caracteres) convertirá el carácter a la codificación de caracteres que use por defecto el Sistema Operativo, en caso de no ser representable entonces asigna un signo de interrogación #$3F, en Linux por defecto no se incluye el administrador de caracteres en los programas, por lo que sólo se mostrará el segundo byte de los valores siempre y cuando sean menores a #$00FF, en caso sean mayores se mostrará un signo de interrogación. Actualmente las variables que usen el tipo de dato Widechar, no se pueden usar con readln o read.




SIGUIENTE
SIGUIENTE
SIGUIENTE



 
‒ Comentarios y sugerencias.

Agradezco de antemano, todo comentario, sugerencia, y donativo (a través de Paypal me), que ayude a mejorar los contenidos educativos de Conoce 3000. Además, cualquier pregunta o duda que tengas lo puedes hacer por este medio. Pero, todo contenido que pueda resultar ofensivo, malicioso, racista, sexista, discriminatorio, obsceno, vulgar será eliminado.


Comments System WIDGET PACK






PORTADA |  INTERESANTE |  APUNTES |  LIBROS |  GALERIA


Creative Commons License


Todos los textos, imágenes y videos de Conoce3000 estan colocados bajo una licencia : Creative Commons Reconocimiento-NoComercial 3.0 Unported License.