SoloCodigo

Programación General => Pascal => Mensaje iniciado por: digimouse en Lunes 21 de Marzo de 2011, 16:55

Título: Codigo ASCII extendido
Publicado por: digimouse en Lunes 21 de Marzo de 2011, 16:55
Hola foro, lo que sucede es que necesito procesar un archivo de texto escrito en español latino (con acentos y ñ) al poner un if (c="á") then, para la letra a con acento agudo me marca error, he intentado hacer con el ascii extendido y queda asi if (c=#160) then, pero entonces simplemente ignora el caracter, he notado que ocurre con todos los caracteres del ascii extendido, ¿alguno de ustedes buenos programadores sabe como arreglar esto?  :oops:
Título: Re: Codigo ASCII extendido
Publicado por: Amilius en Lunes 21 de Marzo de 2011, 18:37
Hay varias codificaciones y tienes que poner claro cual usarás. Existen varias y no puedes diferenciar entre todas automáticamente. Por ejemplo Notepad sólo diferencia entre UTF16 y UTF8 si el archivo comienza con BOM*. Todo lo demás lo toma como ASCII extendido para windows, que es distinto del ASCII extendido para DOS. Mientras que 'á' es 160 en DOS en windows 'á' es 225.

* http://en.wikipedia.org/wiki/Byte_order_mark (http://en.wikipedia.org/wiki/Byte_order_mark" onclick="window.open(this.href);return false;)
Título: Re: Codigo ASCII extendido
Publicado por: DriverOp en Sábado 7 de Mayo de 2011, 04:32
Prueba con...
Código: Pascal
  1.  
  2. if (ord(c) = 160) then ...
  3.  
  4.  
Asumiendo que c es de tipo char.