Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2005
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 24
Mick Va por buen camino
Cita:
Empezado por kalimero
Hola a todos.
Bueno me surge una duda:Y cuando se ejecuta el programa ¿Quien decide que la secuencia de bits (01000001) que tengo que dibujar en pantalla es el 65 ó el caracter 'A'?
Saludos
Esto tiene facil respuesta, lo decide el programador, cuando mandas imprimir algo debes indicar el formato, es decir como quieres que la computadora interprete y muestre esa lista de bits.

Código:
var
 Variable:char;
begin
  Variable:= 'A'; 
  writeln(Format('%d',[Ord(Variable)]));  // imprime 65
  writeln(Format('%c',[Variable]));  // imprime el caracter 'A';
end;
Responder Con Cita
  #2  
Antiguo 05-10-2005
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 289
Poder: 24
kalimero Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 05-10-2005
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 24
Mick Va por buen camino
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:51:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi