Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2013-02

TStringList

4 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Omar D. González R.

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.

Reply by email

Carlos Enrique Rodriguez
to Omar D. González R.

El 19/02/13 08:46, "Omar D. Gonz�lez R." escribi�:

Show quoted text 7 lines
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.

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

Reply by email

José Mejuto
to Omar D. González R.: 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 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.

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....

Reply by email

Maxi
to Omar D. González R.: 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
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. ______________________________**_________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.**freepascal.org<Lazarus-es en lists.lazarus.freepascal.org> http://lists.lazarus.**freepascal.org/mailman/**listinfo/lazarus-es<http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es>

y cuanta memoria tiene el equipo en cuestion? tama�o habilitado para memoria virtual y temporales?

El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html Linux User #495070 http://domonetic.com/blog ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130219/91204b9b/attachment.html>

Reply by email