Ver Mensaje Individual
  #8  
Antiguo 28-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 26
seoane Va por buen camino
Cita:
Empezado por yusnerqui
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?
Pues si, lo malo es que añade un salto de linea cada vez que encuentra un #13#10, un #13 o un #10. Si estamos tratando con un texto guardado en un archivo no hay problema, el ajustara los saltos de linea automáticamente. Pero si estamos haciendo un transmisión y el emisor manda 'hola'+#13#10 y nosotros lo recibimos partido, 'hola'#13 primero y luego #10 se insertaran dos saltos de linea cuando solo debería de haber uno. Ahora bien, podemos hacer algo como esto:

Código Delphi [-]
var
  temp: String;
  n:integer;
begin
  comport1.ReadStr(temp,count);
  for n := 1 to Length(temp) do
    if temp[n]<>#10 then  
      memo1.Text:=memo1.Text+temp[i];
end;

O incluso como esto:
Código Delphi [-]
var
  temp: String;
begin
  comport1.ReadStr(temp,count);
  temp:= StringReplace(temp,#10,'',[rfReplaceAll]);
  memo1.Text:=memo1.Text + temp;
end;

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.
Responder Con Cita