FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
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. |
#7
|
||||
|
||||
Tienes razón seoane, jejeje, parese que ayer no era mi día.
Ahora quiero preguntar, es necesario hacer esta rutina? Es que no cambia de línea el memo automáticamente cuando encuentra uno de los mencionados caracteres? No debería ser ese el comportamiento normal del memo? Saludos.
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#8
|
||||
|
||||
Cita:
O incluso como esto:
En ambos casos nos deshacemos de los #10 y dejamos todo el trabajo a los #13. El propio memo se encargara de ajustar los saltos de linea cada vez que encuentre un #13 en el texto. |
#9
|
||||
|
||||
Bueno al parecer en este caso no nos lo dan picado verdad, pues al parecer en temp ya se leyó el contenido de lo que vamos a mostrar en el memo.
Por otra parte te comento que el memo solo cambia de línea con la secuencia #13#10, en caso de omitir alguno de estos dos solo mostrará un símbolo. De todos modos sería útil que quien inició este hilo se reportara para ver en que ha terminado el problema en cuestión. Saludos.
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#10
|
||||
|
||||
Hola yusnerqui,
Cita:
Cita:
El resultado siempre es el mismo, 3 lineas de texto en el memo. Es mas si revisamos el valor de Memo1.Lines.Text veremos que en los últimos 2 casos se han añadido de forma automática el #10 o el #13 donde era necesario. |
#11
|
||||
|
||||
Hola, pues creo que es hora de hablar de nuestras versiones de delphi y preguntar como se comportan en los diferentes casos, porque el memo estandar que viene con mi delphi 7 solo cambia de línea con la mencionada secuencia.
Incluso si le pasas un texto que termine en #13 y luego uno que comience en #10 se agrega pasa lo siguiente: El primer texto queda en laprimera línea terminado por un símbolo, algo como "|". Al agregarle el segundo trozo de texto el símbolo desaparece y se agrega una nueva línea con el contenido de este último. Realmente no se a que se debe esta diferencia de comportamiento. Bueno me acabo de dar cuenta de algo, tú pones Memo1.Line.text, prueba hacerlo con Memo1.text que es como yo hice mis pruebas, estoy seguro que obtendrás mi mismo resultado. Saludos.
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#12
|
||||
|
||||
Tienes razón, si utilizo la propiedad Text del memo el resultado es diferente. Si te digo la verdad nunca he utilizado antes esa propiedad, siempre utilizo la propiedad Text, de la propiedad Lines. Siempre que tengo que manejar el texto del memo, sea cargarlo desde un archivo, guardarlo, modificar sus lineas o su texto lo he hecho desde la propiedad Lines. El caso es que aunque tengan el mismo nombre son propiedades muy diferentes, de ahí que se comporten de diferente manera y de ahí mi confusión.
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
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 |
|