Cita:
Código:
List.Text:= List.Text + TextoRecibido. ya que se producen muchas conversiones de cadenas innecesarias. Es preferible ir concatenando el texto en un String normal, y una vez recibido todo el texto asignarlo una unica vez al TStringlist con un simple: Código:
List.Text:= TextoRecibidoCompleto; textos parciales recibidos y otro para acumular el total usando AddStrings. Código:
ListParcial.Text:= Socket.ReceiveText; de todos y el que consume menos memoria (no lo he comprobado en la practica, pero por la forma en que maneja delphi los strings y stringlists a priori es el metodo que menos conversiones y reasignaciones de memoria deberia usar). Saludos |
Bueno KamiKaze,
aca con la ayuda de nuestros amigos delphi.com.ar y Mick, ya tenemos nuestra solución, proba entonces este código final:
Segun te entendí, recibís todo el texto de una sóla vez, o lo haces por partes?, si es por partes puedes probar la última alternativa de Mick. Termino siendo mas facíl de lo imaginado :eek: , lo que es ahogarse en un vaso de agua vacio :D , tantas vueltas por un simple fin de línea :p |
Solo una pequeñas correcciones, hay que destruir el objeto TStringList al final sino tendremos un memory leak bastante grave, ya que cada vez que se ejecute la funcion se creara un nuevo stringlist que no se destruira al salir de ella.
Código:
procedure TCliente_Ogame.ClientSocket2Read(Sender: TObject; Socket: TCustomWinSocket); Tambien seria necesario asegurarse de que existe por lo menos 13 lineas en el texto recibido, si no en el caso de recibir menos datos dara un error al intentar acceder a una linea no existente. Saludos |
:eek: Me he quedado asombrado del apoyo que he recibido,
creo que si este no es el mejor foro en cuanto a programación, es el foro mas solidario que hay.:D Muchísimas gracias por vuestro apoyo y por el tiempo que os he podido costar. Ya se que no os podre recompensar de manera directa, ya que sabeis mucho mas que yo, pero a cambio os pondré a todos como creadores del programa, y si este coje algo de "popularidad" os podreis ver en la lista.;) :D Muchas gracias a todos otra vez.:D Kamikaze. P.D.: Si alguien, por lo que sea, no desea aparecer en tal lista, por favor hagamelo saber. |
La franja horaria es GMT +2. Ahora son las 00:19:06. |
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