FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
ayuda con un salto de línea que no me funciona!!! por favor!!!
Hola, tengo un problema urgente que me impide ver unos gráficos con claridad...
estoy cargando unos datos de 8 bits desde el puerto serial en un memo, usando el comport1, y quiero que al recibir un dato y su correspondiente retorno de carril (\r en c es el equivalente a #13 en delphi cierto??) coloque el dato y salte a la siguiente línea en el memo... tengo algo asi en el procedimiento correspondiente a la lectura de los bytes... Cita:
al mostrar los datos leidos del puerto serial en el memo,los tira a un grafico y ahi aparece el problema, pues al hacer la transformacion de bits a numeros decimales, como tengo 256 niveles, obtengo algunos niveles que son menores que 100, y no me los muestra bien, o no salta a la siguiente linea del memo... alguien que me ayude por favor que tengo que terminarlo hoy!!!! |
#2
|
||||
|
||||
Creo que con este código es suficiente. Saludos
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#3
|
|||
|
|||
si, tienes razon, estaba un poco redundante... sin embargo, aun me queda el problema, de hecho ahora agrega lineas vacias al memo ....
mira, aqui es donde voy procesando cada linea del memo y la agrego al gráfico... Código:
procedure TForm1.procesar(Sender: TObject); var i: integer; a1, a0, v1, v0, p, tiempo, primero: extended; begin a0:=0; v0:=0; p:=0; tiempo:=0; for i:=0 to memo1.Lines.Count-3 do begin try primero:=strtoint(memo1.lines.Strings[i][1]); a1:=strtoint(memo1.lines.Strings[i][1]+memo1.lines.Strings[i][2]+memo1.lines.Strings[i][3]); if (not(primero=1)) then begin a1:=strtoint(memo1.lines.Strings[i][1]+ memo1.lines.Strings[i][2]); end; a1:=strtofloat(edit3.text)*(a1-strtofloat(edit2.text)); tiempo:=tiempo+1.365; chart1.Series[0].AddXY(tiempo, a1); a1:= a1*9.8; v1:=Integ(a1, a0, 0.001365)+ v0; chart2.Series[0].AddXY(tiempo, v1); p:= integ(v1, v0, 0.001365)+ p; chart3.Series[0].AddXY(tiempo, p); v0:=v1; a0:=a1; except; end; end; el asunto es que uso un if para que vea si el primer digito es un 1 (del 100) y si no lo es (o sea, es menor a 100) a1 toma el valor de dos digitos que le corresponde... la funcion integ() es una integral.... dime si no esta claro.... muchas gracias |
#4
|
||||
|
||||
Solo un par de observaciones, el primer carácter de un string es el 1 y no el 0 y segundo, en el código yusnerqui añades un salto de linea con el carácter #10 y con el #13, lo conveniente seria decidirse por uno e ignorar el otro. Algo así:
|
#5
|
||||
|
||||
Por que no nos cuentas un poco mas lo que estas intentando de hacer para poder ayudarte mejor.
Como es le protocolo que estas recibiendo los datos por el puerto? tres datos y un #10 o #13 que separa los valores?
__________________
[Crandel] |
#6
|
||||
|
||||
rojo, prueba a utilizar la etiqueta [ DELPHI ] en lugar de la etiqueta [ CODE ].
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
RichEdit, salto de linea | chrids506 | OOP | 3 | 12-07-2006 17:42:41 |
email con shellexecute, como insertar un salto de linea | alt126 | C++ Builder | 10 | 14-12-2005 10:06:55 |
Eliminar salto de linea de una cadena | pablomg8 | Varios | 2 | 13-05-2005 15:35:44 |
salto de linea | bolofe | Varios | 2 | 24-04-2005 17:30:19 |
Salto de linea en qreport | davidgaldo | Impresión | 6 | 02-06-2004 12:59:22 |
|