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 17-10-2008
Avatar de Sr.Scorpion
Sr.Scorpion Sr.Scorpion is offline
Miembro
 
Registrado: mar 2005
Posts: 92
Poder: 20
Sr.Scorpion Va por buen camino
Unhappy Eliminar caracteres extraños obtenidos por puerto serie

Hola

Uso Delphi 6.0 y el componente ComPort, estoy adquiriendo datos de una pizarra telefonica y los pongo en un memo pero me salen caracteres extraños como un palito bien negro... caracter q no salia cuando capturaba la informacion por el Hyperterminal alguien me puede decir como eliminar eso ?

Saludos de antemano
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces.

Sr.Scorpion
Responder Con Cita
  #2  
Antiguo 17-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Sr.Scorpion Ver Mensaje
Hola

Uso Delphi 6.0 y el componente ComPort, estoy adquiriendo datos de una pizarra telefonica y los pongo en un memo pero me salen caracteres extraños como un palito bien negro... caracter q no salia cuando capturaba la informacion por el Hyperterminal alguien me puede decir como eliminar eso ?

Saludos de antemano
Hola,

Así sin ver, me podria aventurar que son caracteres de control que van desde el Null (ASCII 0) hasta el US (ASCII 31), si colocas el código con el cual estas recibiendo datos, te podriamos ayudar mejor.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 19-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
probablemente es la velocidad con la que envias los datos.
yo siempre coloco este codigo y me sale todo bien:

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
dato:string;
begin
comport1.Readstr(dato,3);
memo1.Lines.Text:=memo1.Lines.Text+dato;
end;

tienes que seleccionar el evento rxchar y lo pones asi como te dije veras que si funciona si quieres te envio uno que tengo armado y funcionando
Responder Con Cita
  #4  
Antiguo 19-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por Sr.Scorpion Ver Mensaje
Hola

Uso Delphi 6.0 y el componente ComPort, estoy adquiriendo datos de una pizarra telefonica y los pongo en un memo pero me salen caracteres extraños como un palito bien negro... caracter q no salia cuando capturaba la informacion por el Hyperterminal alguien me puede decir como eliminar eso ?

Saludos de antemano
Pon el codigo a ver que se le encuentra.

Un Saludo.
Responder Con Cita
  #5  
Antiguo 20-10-2008
Avatar de Sr.Scorpion
Sr.Scorpion Sr.Scorpion is offline
Miembro
 
Registrado: mar 2005
Posts: 92
Poder: 20
Sr.Scorpion Va por buen camino
Los caracteres en rojo son los q me salen, si hago un ShowMessage con el Texto q se lee desde el puerto me sale como un simbolo de un cuadrito.

10/20/08 10:46AM 219 01 2047564219 00:00'15 1771
10/20/08 10:46AM 222 01 8811345 00:02'30 6416

El codigo q utilizo es este:

Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
str: string;
begin
ComPort.ReadStr(Str, Count);
ShowMessage(Str);
Memo.Text := Memo.Text + Str;
end;

Saludos y gracias
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces.

Sr.Scorpion
Responder Con Cita
  #6  
Antiguo 20-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
A mí lo que me gustaría saber es ¿cómo has puesto ese caracter en el foro?

En serio, parece que pone 0013... y 13 es el símbolo ASCII de retorno de línea, en windows es muy común el caracter 10 seguido del 13 que viene a significar retorno de carro y retorno de linea. Su representación:
- en delphi str := #10#13;
- En hexadecimal $A$D
- En C y en otros lenguajes se suelen usar constantes CR (Carry Return) y LF (Line Feed??)

para eliminarlos podrías usar cualquier función de delphi:
Código Delphi [-]
 str := ReplaceStr(lacadena, #13, ' ', [rfReplaceAll]);

Espero sea eso. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 20-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Hola en count tienes que poner un entero pequeño de 1 a 10 es la cantidad de caracteres que vas a recivir.
Responder Con Cita
  #8  
Antiguo 20-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por mario2000 Ver Mensaje
Hola en count tienes que poner un entero pequeño de 1 a 10 es la cantidad de caracteres que vas a recivir.
No no, el parámetro count es precisamente los caracteres recibidos en el puerto, como dice Lepe, deberás de precisar cuales son los caracteres "raros" para que los reemplaces.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 21-10-2008
Avatar de Sr.Scorpion
Sr.Scorpion Sr.Scorpion is offline
Miembro
 
Registrado: mar 2005
Posts: 92
Poder: 20
Sr.Scorpion Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
A mí lo que me gustaría saber es ¿cómo has puesto ese caracter en el foro?

En serio, parece que pone 0013... y 13 es el símbolo ASCII de retorno de línea, en windows es muy común el caracter 10 seguido del 13 que viene a significar retorno de carro y retorno de linea. Su representación:
- en delphi str := #10#13;
- En hexadecimal $A$D
- En C y en otros lenguajes se suelen usar constantes CR (Carry Return) y LF (Line Feed??)

para eliminarlos podrías usar cualquier función de delphi:
Código Delphi [-] str := ReplaceStr(lacadena, #13, ' ', [rfReplaceAll]);


Espero sea eso. Saludos
La funcion ReplaceStr es propia de Delphi, API ???? o es una funcion q implementastes tu

Saludos
__________________
La paciencia es un árbol de raíz amarga pero de frutos muy dulces.

Sr.Scorpion
Responder Con Cita
  #10  
Antiguo 21-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Sr.Scorpion Ver Mensaje
La funcion ReplaceStr es propia de Delphi, API ???? o es una funcion q implementastes tu

Saludos
Hola Sr.Scorpion,
Esa función ya viene en Delphi. Para saber más sobre la función escribe su nombre, seleccionalo y presiona F1. Debería aparecerte la ayuda sobre dicha función.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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
Caracteres extraños (#$D#$A) Iuconlas Varios 2 23-09-2005 17:09:05
Puerto serie esquerda21 Varios 2 12-05-2004 23:58:52
caracteres extraños en reportes Tangela Conexión con bases de datos 0 21-01-2004 19:56:22
Puerto serie y tcp mercurio Varios 3 28-10-2003 01:21:59
Caracteres extraños Germi Conexión con bases de datos 1 14-10-2003 15:26:18


La franja horaria es GMT +2. Ahora son las 00:34:44.


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