Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Quitar datos recibidos de un puerto serial (https://www.clubdelphi.com/foros/showthread.php?t=59716)

GrupoDatasoft 05-09-2008 15:50:59

Quitar datos recibidos de un puerto serial
 
Hola, buen dia a todos, lo que me sucede es lo siguiente:Tengo una aplicacion para punto de venta en delphi, estoy programandola para que en el campo cantidad de un dbgrid de tipo integer, me reciba el dato de peso enviado por la balanza electronica por puerto serial rs232 (com1). hasta alli normal, el problema, es que la balanza manda los datos de valor unitario, valor toal y peso, con sus respectivas iniciales de cada dato y lo que yo nececito es solamente el dato de peso, obviamente el campo del dbgrid no me recibe todos esos datos. La pregunta entonces es: como hacer para eliminar de los datos que me envia la balanza los que no me sirvan?, encontre una funcion delphi para cortar caracteres a partir de una posicion dada, pero igual no me sirve porque cuando se abre el puerto, la balanza nunca comienza a enviar desde el mismo punto si no desde cualquier punto, y entonces por eso no pude aplicar la funcion de cortar caracteres de la cadena de texto. Alguien me puede ayudar?. los datos que envia la balanza son asi:

ut 0
tt 0
US, NT, WT: +0.250 Kg (Y VUELVE Y EMPIEZA)
ut 0
tt 0
US, NT, WT: +0.250 Kg (Y ASI SUSECIVAMENTE)
El problema es que nunca empieza exactamente en "ut", unas veces comienza en "ut" otras en "tt" otras en "Kg" y asi mismo puede comenzar a mandar datos en cualquier parte. La verdad, estoy perdiendo varios clientes por falta de esta programacion, les agradeceria su colaboracion.

Gracias a todos...

egostar 05-09-2008 16:26:22

Hola

Se me ocurre que la cadena que recibas busques la substring 'WT:' y de ahi copies el dato de los Kg.

Por ejemplo

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  cadena: string;
  indice: integer;
begin
  cadena := 'US, NT, WT: +0.250 Kg ';
  indice := pos('WT:',cadena);
  if indice > 0 then
     showmessage(copy(cadena,indice+5,5));
end;

Salud OS

maeyanes 05-09-2008 16:27:43

egopolice...

Ahora si me fallaste: http://www.clubdelphi.com/foros/showthread.php?t=59717 :D :D


Saludos...

roman 05-09-2008 16:30:14

Voy a cerrar este tema debido a las repeticiones. Al usuario GrupoDataSoft le recomiendo que lea la guía de estilo para publicar mensajes correctamente.

// Saludos


La franja horaria es GMT +2. Ahora son las 06:01:28.

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