![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Buenas a todos
Tengo un hardware que me devuelve cada 5 segundos una serie de registros (todos agrupado en una sola linea), lo estoy leyendo con un componente tcpclient y su método receiveln. Tcpclient1,receiveln(Buf,ls_fin). buf es un Pansichar y ls_fin es el caracter de escape de la cadena. Cuando trabajo con este método en decimal, le paso un CRLF (retorno de carro, #13#10) y todo va perfecto, corta las cadena por separado, cada vez que se encuentra un retorno de carro, me trata una cadena independiente y continua con la otra. El problema se trata cuando trabajo en hexadecimal. la cadena que me trae el metodo (varios registros), delphi me la pita con carateres raros Delphi me pinta esto: 'Ž'#2#$1F, pero al convertirlo a caracteres ascii, me trae lo siguiente en hexadecimal: Cita:
¿Alguien podría orientarme de como enviar la cadena de fin de registro 8F? Lo he intentado como
Gracias a todos por Vuestra colaboración. Saludos Última edición por Casimiro Notevi fecha: 04-05-2014 a las 09:53:56. |
#2
|
||||
|
||||
rabata2001,
Cita:
Cita:
1- ¿Como conviertes 'Ž'#2#$1F y obtienes la salida que indicas en Hexadecimal?, ¿'Ž'#2#$1F es la cadena completa recibida o solo una parte?. 2- ¿El proceso inverso de conversión no se podría aplicar a 8F para enviarlo como carácter separador? ![]() 3- ¿Puedes publicar el código de conversión con una cadena completa debidamente formateada (Donde empieza y donde termina cada carácter recibido para su posterior conversión a Hexadecimal)?. Espero sea útil ![]() Nelson. |
#3
|
|||
|
|||
![]() Muchas gracias por tu aporte, Nelson
Te adjunto el trozo de código donde descodifico la información:
Gs_P3_EOR = Finde registro (cadena o sentencia 8F) Dato:PAnsiChar ls_dato_Hex, ls_cadena:String; Entiendo que la instrucción format pasa de AnsiChar a codigo hexadecimal(%x). Ante tus preguntas formuladas Cita:
Cita:
Cita:
el envío del fin de cadena se le indica a un componente TcpClient: TcpClient1.Receiveln(ls_fin); Dónde ls_Fin (8F), es el carácter a enviar como PAnsiChar, al menos eso entiendo. Saludos. |
#4
|
||||
|
||||
rabata2001,
Cita:
![]()
Cita:
![]() Revisa este código: El código anterior, convierte la cadena de caracteres 'Ž'#2#$1F en su representación hexadecimal y muestra su contenido, el cual en este caso es el siguiente: ![]() ¿Por que la salida difiere de lo sugerido en el Msg #3?, en la cadena 'Ž'#2#$1F hay tres caracteres : 1- 'Ž' = 8E en Hex (En la cadena representado como un carácter). 2- #2 = 02 en Hex (En la cadena representado como un número decimal). 3- #$1F= 1F en Hex (En la cadena representado como un número hexadecimal). Luego no entiendo lo siguiente ![]() Cita:
Espero sea útil ![]() Nelson. Última edición por nlsgarcia fecha: 09-05-2014 a las 02:44:15. |
#5
|
||||
|
||||
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Reemplazar carácter por otro carácter | rotsen26 | OOP | 3 | 27-05-2013 10:51:38 |
Leer texto caracter a caracter | kikecg | Firebird e Interbase | 11 | 23-11-2010 17:44:44 |
leer caracter por caracter, una linea de un memo | douglas | OOP | 1 | 05-10-2007 06:59:31 |
Ayudaaaa!!! Tabla ASCII: El carácter Ñ vs. carácter ¥ | Berto2003 | Varios | 5 | 26-07-2005 15:37:48 |
Caracter de escape para comilla | JOMABRI | Varios | 2 | 08-07-2004 23:02:50 |
![]() |
|