Cita:
|
Empezado por kalimero
Hola Mick.
Eso lo tengo claro, pero yo lo que quiero decir es que como se almacena dentro del ejecutable este formateo que indicas, es decir, cuando se estan ejecutando los ceros y unos ¿donde está escrito que sea una 'A' ó un 65?
Saludos a todos
|
No se almacena ningun tipo de formateo con la variable, en el ejecutable no hay nada mas que el numero 01000001.
Unicamente esta escrito que se imprima como A o como 65 directamente en la funcion que utilices para ordenar la impresion, o queda implicito por el tipo de variable, es decir:
Si tenemos declarada esta variable de tipo caracter:
var
Car:Char;
Y si usamos Format:
Format('%c',65);
El %c que se pasa como parametro a la funcion Format le indica que el segundo parametro debe ser tratado como un codigo ascii.
En el caso de usar funciones normales de pascal como:
write(Car);
Al ser delphi un lenguaje fuertemente tipado y estar definidos los tipos de variables previamente, el compilador sabe que Car debe tratarse como un caracter.
Luego en realidad el compilador va a sustituir write por WriteChar,
de modo que enn la realidad se estaria llamando a la funcion:
WriteChar(Car);
Es decir se llama a una funcion WriteChar que imprime solo caracteres y que trata siempre al valor que se le pase como un caracter.
Si Car fuera de tipo string, el compilador sustiye el Write por un
WriteString(Car);
Etc, para el resto de tipos de variables.
Si hacemos
Write(caracter, string);
En realidad el compilador lo sustituira por algo como:
WriteChar(caracter);
WriteString(string);
Saludos
Miguel