PDA

Ver la Versión Completa : MemoryStream linea por linea


elcigarra
24-11-2005, 17:32:15
Tengo una lista (TStrings) que toma datos de un TMemoryStream (de nombre txtStream) de la forma:

Lista1.LoadFromStream(txtStream);

Por otra parte los strings que necesito son el 10% nada mas, por lo que tengo un algoritmo para borrar las que no sirven dejando en la lista las pocas que si. El tema es que el Stream es tan grande que la lista es imposible de manejar llena y me gustaría, en vez de cargar todas las lineas como un paquete, cargarlas linea por linea según se vayan a quedar o no?.

El tema, digo yo, se reduce a poder extraer una lina del stream a una variable TString. ¿esto se puede hacer?

OSKR
24-11-2005, 18:30:59
Hmmmmmm:confused: nnnnnnn...las cadenas son de tamaño fijo? si es asi podrias extraer el contenido con Read a un vector de caracteres del tamaño fijo y luego lo transformas a AnsiString (o en tu caso tal vez a String). Si no es asi, tal vez una rutina para formar cadenas mediante la extraccion de caracter a caracter te puede servir, claro!! leyendo estos del buffer previamente extraido del Stream. En C se podria hacer redirigiendo flujos y luego aplicando fscanf, pero ignoro como hacerlo en Pascal, o mejor dicho!! creo q si!!, manda ese buffer a un archivo temporal y lo extraes con Read.