[Lazarus-es] Lectura de ficheros de texto plano

JoshyFun joshyfun en gmail.com
Mie Abr 1 16:53:35 CEST 2009


Hello lazarus,

Wednesday, April 1, 2009, 12:07:25 PM, you wrote:

ldn> JoshyFun escribió:
>> 162000 lineas o bytes ?

ldn> Hablo de líneas.

Esas son demasiadas lineas para un TStringList, bueno no demasiadas ya
que las maneja, pero el consumo de memoria así como realizar semejante
cantidad de GetMem/FreeMem (al menos 3 por linea de texto) complica su
gestión sobre manera.

Si quieres puedes usar readln sobre un fichero o si quieres usar
streams tengo por algún sitio un TFileStream con un ReadLine con
caché de prelectura para que la lectura de las lineas sea rápida,
desde luego el consumo de memoria va a bajar de manera sustancial y la
velocidad debería ser igual o superior.

De todos modos el cuello de botella es la DB. Como ejemplo yo tengo
que hacer sobre firebird 1.5 un "select" de unos 200000 registros y
actualizar un campo de cada uno a través de programa (no puedo hacerlo
con una stored procedure) y la velocidad de actualización es de unos
1000 por segundo con transacciones de 500 en 500.

-- 
Best regards,
 JoshyFun




More information about the Lazarus-es mailing list