![]() |
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 |
Cita:
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 |
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 :) |
Cita:
Un Saludo. |
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:
Saludos y gracias |
A mí lo que me gustaría saber es ¿cómo has puesto ese caracter en el foro? :D
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:
Espero sea eso. Saludos |
Hola en count tienes que poner un entero pequeño de 1 a 10 es la cantidad de caracteres que vas a recivir.
|
Cita:
Salud OS |
Hola egostar, siento dicentir un poco con eso, pero el manual dice comport lo dice.
ahora viejo el no deberia recivir caracteres extraños si en otro programa no le salen por que en el de el iban a salir, es mas le voy a hacer un ejemplo y se los subo, yo no soy experto es lo que mas me gustaria pero asi es como siempre lo he hecho y funciona perfectamente :eek: |
Cita:
Podriamos debartirlo, pero es muy claro, te explico, cuando tu lees datos del puerto serial tienes dos alternativas, que uses el evento OnRxChar (que es el evento que nos ocupa en este caso) o desde cualquier punto de tu programa, por ejemplo en un botón. Si usas el evento onRxChar del ComPort debes de leer en base a los caracteres recibidos, que para eso es el parámetro Count.
Si lees por ejemplo al presionar un boton, entonces si, puedes indicar cuantos caracteres quieres leer.
Y si tienes alguna duda, lee bien el manual del ComPort, en especifico la sección Reading from port Salud OS |
Bueno egostar tu sabes mas que yo, debes tener razon. :), yo tambien reviso a ver lo que tu dices y gracias por las aclaraciones :D
|
Cita:
Saludos |
Cita:
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, |
Cita:
Saludos |
Cita:
Tienes razón no es ReplaceStr() es StringReplace()
Salud OS |
gracias amigos, ya nos habéis sacado del apuro.
Nunca acierto con el nombre de esa rutina, es mi talón de aquiles... (y la vejez que no perdona :D). Saludos |
Cita:
Disculpen mi ignorancia con esta funcion.... alguien puede postear un ejemplo de esta funcion... algo tengo q estar haciendo mal, q no hay manera q me compile el Delphi Saludos |
Hola...
¿Te da algún error? ¿Cuál? Ponlo aquí para que te podamos ayudar mejor... Saludos... |
Cita:
La cadena en rojo es la q me da el error y me dice Error [50] Incompatible types Mil gracias de antemano |
Hola...
Prueba así:
Fijate que #13 no está encerrado entre comillas... Saludos... |
La franja horaria es GMT +2. Ahora son las 06:09:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi