Hola amigos,
Me gustar�a saber si el TStringList tiene un l�mite de filas, que est� dado por las caracter�sticas del componente o est� limitado por el programa del equipo donde se usa.
Estoy intentando leer un archivo de texto de 3.100.000 registros y se cae por problemas de memoria. Lo pregunto para ver si resuelvo el problema disponibilizando mas memoria para la aplicaci�n.
Mailing lists / lazarus-es / 2013-02
TStringList
4 messages · 4 people ·
- CCarlos Enrique Rodriguez 1
- JJosé Mejuto 1
- MMaxi 1
- OOmar D. González R. 1
Reply by email Subscribe to this list Your subscription
Read-only archive. Use j and k to move between messages.
El 19/02/13 08:46, "Omar D. Gonz�lez R." escribi�:
Show quoted text 7 lines
TstringList hereda de Tlist, que es lo m�s parecido a "listas enlazadas (con punteros de memoria)" que hay, as� que si, es un tema de memoria el tuyo.
Ahora una pregunta. Si bien se que la tendencia actual es volcar todo en memoria, no son muchos elementos? No es m�s conveniente tenerlos en alg�n archivo y levantar a memoria el subgrupo con el que vas a trabajar? De curioso nom�s pregunto.
Nos vemos
Carlos
Me gustar�a saber si el TStringList tiene un l�mite de filas, que est� dado por las…
El 19/02/2013 12:46, "Omar D. Gonz�lez R." escribi�:
Show quoted text 8 lines
Hola,
T�cnicamente 2000 millones de lineas, pero eso es imposible de alcanzar en un equipo de 32 bits ya que cada linea (con contenido) ocupa el contenido de la linea, m�s la configuraci�n de los bloques de memoria para cada string, m�s la informaci�n de control de las lineas y lo peor, la fragmentaci�n que genera en la memoria.
Si las lineas son todas de la misma longitud mejor leerlas todas en un solo bloque de memoria.
Si no tienen longitud fija y necesitas acceder a todas en memoria, cargas todas las lineas en un bloque de memoria, luego haces un array din�mico de "pointer" o "integer" (seg�n convenga) que vas haciendo crecer en bloques de 1000 o 10000 elementos y buscas donde empieza cada linea y lo apuntas en ese array.
En el sistema todo depender� de que necesitas hacer con las lineas una vez cargadas, leerlas, reordenarlas, borrar, a�adir, insertar....
Me gustar�a saber si el TStringList tiene un l�mite de filas, que est� dado por las…
El 19 de febrero de 2013 08:46, "Omar D. Gonz�lez R." < omar.gonzalez en novacomp.cl> escribi�:
Show quoted text 14 lines
y cuanta memoria tiene el equipo en cuestion? tama�o habilitado para memoria virtual y temporales?
