FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
MemoryStream linea por linea
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? |
#2
|
||||
|
||||
Hmmmmmm 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.
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
|
|
|