Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2007
BetoAlonso BetoAlonso is offline
Miembro
 
Registrado: jul 2003
Posts: 113
Poder: 21
BetoAlonso Va por buen camino
Tipo de Dato

Saludos a todos

Alguien seria tan amable por favor de decirme que tipo de dato es esto : #1,#2...#9 y como pasarlo a string.

muchas gracias por su atencion.

Responder Con Cita
  #2  
Antiguo 08-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Son caracteres de control (toda aquella tecla con código ASCII < 32). El #9 es la tecla retroceso, el resto no sé, pero busca un mapa de caracteres o Asciimap en internet.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 08-12-2007
BetoAlonso BetoAlonso is offline
Miembro
 
Registrado: jul 2003
Posts: 113
Poder: 21
BetoAlonso Va por buen camino
Unhappy

los datos ke te comento son el resultado de la siguiente sentencia :

Código:
 C := ApdComPort1.GetChar;
Responder Con Cita
  #4  
Antiguo 08-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Lo que ves es una convención de delphi... existente desde Turbo Pascal.

Dado que en el código ASCII hay caracteres no imprimibles (todos los menores a 32), a los creadores de Pascal se les ocurrió que cuando estas programando/depurando es necesario distinguir entre esos caracteres.

Cómo ya ha mencionado Lepe, estos caracteres son utilizados a menudo cómo códigos de control (por ejemplo, por editores de texto o por impresoras)

En lugar de mostrarte "muñequitos" o cosas raras... te muestran el código ascii del caracter representado precedido por el signo de numeral.

Así, #1 es equivalente a chr(1), #9 a chr(9) (tabuldador), y cuando programas podes hacer algo cómo:

Código Delphi [-]
  Memo1.Add('Columna1'#9'Columna2');
  Memo1.Add('Dato1'#9'Dato2');
  Memo2.Text := 'Línea1'#13'Línea2'#13'Línea3';

#13 = CR = Carriage return
#10 = LF = Line Feed

Cómo ves.. ya son caracteres que usualmente pertenecerán a un string.

En el caso de la función que estas usando, significa que por el puerto has recibido ese caracter.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 08-12-2007
BetoAlonso BetoAlonso is offline
Miembro
 
Registrado: jul 2003
Posts: 113
Poder: 21
BetoAlonso Va por buen camino
Wink

gracias JAchguate por tu respuesta.

te pongo el codigo ke tengo :

Código:
        C := ApdComPort1.GetChar;
        case C of
        #0:S := S + '0';
        #1:S := S + '1';
        #2:S := S + '2';
        #3:S := S + '3';
        #4:S := S + '4';
        #5:S := S + '5';
        #6:S := S + '6';
        #7:S := S + '7';
        #8:S := S + '8';
        #9:S := S + '9';
        end;
Hasta aki todo bien mi problema es ke C puede llegar a ser #99 y te imaginas hacer un case hasta #99?

Lo ke deseo es saber si hay alguna manera de transformar el valor de C por ejemplo #6 ke sea solo 6.

espero haberme hecho entender.
Responder Con Cita
  #6  
Antiguo 08-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Código Delphi [-]
  C := ApdComPort1.GetChar;
  S := S + IntToStr(Ord(C));

Claro que si C se convertirá en cadenas de 1, 2 o hasta 3 caracteres... luego no vas a tener forma de distinguir, en la cadena, la organización de la misma.

Es decir, si recibimos la secuencia #1#14#99#103

S terminará teniendo el valor '11499103'

pero no sabremos cómo se formó esa cadena:

¿#1#1#4#9#9#1#0#3?
¿#11#49#91#0#3?
¿#11#4#99#10#3?

¡Es imposible saberlo!

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 08-12-2007
BetoAlonso BetoAlonso is offline
Miembro
 
Registrado: jul 2003
Posts: 113
Poder: 21
BetoAlonso Va por buen camino
Wink

Interesante asi ke Ord me devuelve la parte numerica?
estoy recibiendo el cronometro de un tarifador
gracias
Responder Con Cita
  #8  
Antiguo 08-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por BetoAlonso Ver Mensaje
Interesante asi ke Ord me devuelve la parte numerica?
Según recuerdo, Ord te devuelve la posición del valor que tiene la variable dentro de un tipo enumerado, donde el primer valor del tipo tiene índice 0.

Pudimos también usar un molde de tipo:

Código Delphi [-]
  C := ApdComPort1.GetChar;
  S := S + IntToStr(Byte(C));

El resultado, cómo podrías comprobar, es el mismo.

Cita:
Empezado por BetoAlonso Ver Mensaje
estoy recibiendo el cronometro de un tarifador
Pues tené en cuenta lo que ya te había dicho.

Para mí, sin saber para lo que vas a usar este dato, tiene mas sentido ir almacenando directamente el caracter obtenido:

Código Delphi [-]
C := ApdComPort1.GetChar;
S := S + C;

Para poder interpretarlo luego... cuando haga falta.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 08-12-2007
BetoAlonso BetoAlonso is offline
Miembro
 
Registrado: jul 2003
Posts: 113
Poder: 21
BetoAlonso Va por buen camino
Unhappy

lo estuve haciendo asi desde hace 2 semanas
Código:
C := ApdComPort1.GetChar;
S := S + C;
pero cuando la muestro me pinta esto :

Código:

ojo 2 semanas
Responder Con Cita
  #10  
Antiguo 08-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
ah... claro.. es que si la cadena es para mostrarla al usuario... ya hemos dicho antes que son caracteres no imprimibles... es decir: sin representación visual.

Por lo que veo... ahora vas por mejor camino..

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #11  
Antiguo 08-12-2007
BetoAlonso BetoAlonso is offline
Miembro
 
Registrado: jul 2003
Posts: 113
Poder: 21
BetoAlonso Va por buen camino
Si me sirvio de mucho tu ayuda.

Un ultimo favor, tengo la siguiente cadena :
Código:
800000
cual seria la manera de llevarlo a esto :
Código:
00:00:08
Responder Con Cita
  #12  
Antiguo 09-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Buscá la ayuda de la función Copy

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con tipo de dato The_Duke Varios 0 29-03-2007 17:23:47
tipo de dato de un edit nikotina Varios 3 26-12-2006 16:05:36
tipo de dato en mysql ppalmamichi MySQL 3 08-06-2005 09:49:33
Identificar el tipo de dato kayetano MySQL 1 28-07-2004 19:43:54
Conversion tipo de dato Luis Castillo Conexión con bases de datos 2 09-07-2003 09:08:16


La franja horaria es GMT +2. Ahora son las 23:01:09.


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