Definición de Código ASCII en informática
En la programación hay muchos desarrollos que necesitaremos saber que es el código ASCII, porque cuando tenemos que generar ciertos archivos que enviamos de un sistema a otro, o que nos piden en ciertos desarrollos de software debemos cumplir ciertas reglas por ejemplo un layout para alta de usuarios donde debamos ingresar nombres con Ñ, como Ibañez, direcciones donde debamos ingresar Sopeña, España o acentos, no todos los sistemas nos aceptan estos tipos de datos, por lo que necesitamos hacer un proceso de conversión o de eliminación de esos caracteres en nuestra información a enviar.
Para ello hay un estándar que se definió para identificar cada carácter con un número, de manera general eso es el código ASCII.
Ahora de manera oficial que es:
American Standard Code for Information Interchange, Los códigos ASCII representan texto en las computadoras fue hecho por Internet Assigned Numbers Authority . El primer uso comercial del código fué en Telegrafos, La primera definición de este estándar fué en 1963 y la ultima actualización en 1986
Para poder utilizar el código ASCII
Esos símbolos de la tabla ASCII pueden generarlos con su teclado utilizando la tecla ALT + Numero de la tabla por ejemplo:
- ALT + 64 = @
- ALT + 164 = ñ
https://support.office.com/es-es/article/insertar-s%C3%ADmbolos-y-caracteres-ascii-o-unicode-basados-en-el-alfabeto-latino-d13f58d3-7bcb-44a7-a4d5-972ee12e50e0
O también en el mapa de Caracteres de Windows, pueden ver el codigó ASCII
Un ejemplo en un programa Progress 4gl:
lvc-name = REPLACE(lvc-name,CHR(209,SESSION:CPINTERNAL,"ISO8859-1"),"N").
lvc-name = REPLACE(lvc-name,CHR(193,SESSION:CPINTERNAL,"ISO8859-1")
,"A").
lvc-name = REPLACE(lvc-name,CHR(201,SESSION:CPINTERNAL,"ISO8859-1")
,"E").
Aquí tenemos 2 funciones muy importantes
REPLACE: esta instrucción lo que nos permite hacer es cambiar un carácter o grupo de letras por otro(s). Tiene 3 parámetros
- La variable en donde se va a buscar
- El campo a buscar
- El valor por el que va a cambiar
CHR: esta instrucción obtiene el código obtiene el carácter que corresponde a la tabla ASCII, tiene solo un parámetro que es el código correspondiente a la tabla
DEF VAR lvc-name AS CHAR Initial "" .
DEF VAR lvc-name2 AS CHAR INITIAL "".
lvc-name = "M" + CHR(233) + "xico" .
DISPLAY "Antes" lvc-name FORMAT "X(10)" SKIP.
lvc-name2 =REPLACE(lvc-name,CHR(130),"e").
lvc-name2 = REPLACE(lvc-name,CHR(233,SESSION:CPINTERNAL,"ISO8859-1"),"e").
lvc-name2 = REPLACE(lvc-name,CHR(201,SESSION:CPINTERNAL,"ISO8859-1"),"e").
DISPLAY "Desp" lvc-name2 FORMAT "X(30)" SKIP.
Para ver mas detalle de esta función les comparto la liga de la documentación de Progress
Este tipo de instrucciones no solo aplica a Progress, tambíen estan en C#, C++, Python por ejemplo en este ultimo hay librerías que hacen conversión a códigos o a unicode o UTF-8 como por ejemplo BeutifulSoup
Chr(charcode)
ChrB(charcode)
ChrW(charcode)
Mgsbox(Chr(65))
Que cumple el mismo objetivo que la función de Progress que es obtener el texto del código ASCII
string value = "Ñ";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
foreach(byte b in ASCIIValues) {
Console.WriteLine(b);
}
Como se ve el programa
DEF VAR lvc-name AS CHAR Initial "" .
DEF VAR lvc-name2 AS CHAR INITIAL "".
lvc-name = "M" + CHR(233) + "xico" .
DISPLAY "Antes" lvc-name FORMAT "X(10)" SKIP.
lvc-name2 =REPLACE(lvc-name,CHR(130),"e").
lvc-name2 = REPLACE(lvc-name,CHR(233,SESSION:CPINTERNAL,"ISO8859-1"),"e").
lvc-name2 = REPLACE(lvc-name,CHR(201,SESSION:CPINTERNAL,"ISO8859-1"),"e").
DISPLAY "Desp" lvc-name2 FORMAT "X(30)" SKIP.
Como se ve la ejecución
Para ver mas detalle de esta función les comparto la liga de la documentación de Progress
Este tipo de instrucciones no solo aplica a Progress, tambíen estan en C#, C++, Python por ejemplo en este ultimo hay librerías que hacen conversión a códigos o a unicode o UTF-8 como por ejemplo BeutifulSoup
Ejemplo en Visual Basic
En Visual Basic, que es el lenguaje de las Macros de Excel, tenemos las instruccionesChr(charcode)
ChrB(charcode)
ChrW(charcode)
Mgsbox(Chr(65))
Que cumple el mismo objetivo que la función de Progress que es obtener el texto del código ASCII
Ejemplo en C Sharp o C#
string value = "Ñ";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
foreach(byte b in ASCIIValues) {
Console.WriteLine(b);
}
Espero que este post les haya gustado y sobretodo les sea de utilidad al momento de hacer sus proyectos, principalmente tendrán que utilizarlo para generar layouts que envíen a otros sistemas.
Saludos amigos programadores, dejen sus comentarios o dudas.
No olvide compartirnos y seguirnos en este blog, en Facebook.
Comentarios
Publicar un comentario