Foros Club Delphi

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

GrupoDatasoft 05-09-2008 15:52:00

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...

Caro 05-09-2008 16:08:07

Hola, digamos que tienes esta cadena "US, NT, WT: +0.250 Kg" no importa donde este el peso por lo que veo despues del valor tiene kg que indica que es peso, puedes obtenerlo de esta forma.

Código Delphi [-]
var
 sl : TStringList;
 Ind : Integer;
begin
 sl := TStringList.Create;
 sl.Delimiter := #32;
 sl.DelimitedText := 'US, NT, WT: +0.250 Kg';
 Ind := sl.IndexOf('kg');
 showmessage('El peso es: '+sl[Ind-1])
end;

separamos tu cadena en el StringList, buscamos kg y devolvemos una posición anterior.

Saluditos

maeyanes 05-09-2008 16:12:11

Hola GrupoDatasoft...

Bienvenido a estos foros... para empezar, te recomiendo que te leas la Guía de Estilo (enlace arriba del banner)...

Sobre tu mensaje, veo que lo repetiste 3 veces, aquí y aquí. El que pongas tu mismo mensaje más de una vez no va a ser que te lo respondan más rápido... ;)



Saludos...

egostar 05-09-2008 16:31:37

Cita:

Empezado por maeyanes
egopolice...

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

Saludos...

Changos, perdón, es que aún estoy dormido :D

Salud OS


La franja horaria es GMT +2. Ahora son las 17:08:42.

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