Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Para qué necesitas cargar tantos datos en memoria?, ¿no puedes procesarlos de otra forma?
Responder Con Cita
  #2  
Antiguo 04-04-2014
jularaXD jularaXD is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 18
Poder: 0
jularaXD Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Para qué necesitas cargar tantos datos en memoria?, ¿no puedes procesarlos de otra forma?
Los archivos que creo son de monitorización, osea, que cada minuto me crea un registro. Separo los archivos por meses, por lo que serian unos 45.000 registros al mes

Podría mirar de hacerlo de otro modo, pero de esta forma puedo buscar datos en concreto dentro del archivo sin tener que leer el archivo de principio a fin todo el rato, además, si en otra situación me surge un problema parecido, saber como solventarlo.

salu2
Responder Con Cita
  #3  
Antiguo 04-04-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Hola, no entiendo bien lo que estás haciendo, pero si es un archivo de texto donde tienes que buscar una palabra o algo, será mejor hacer la búsqueda que no cargar en memoria todo el archivo, y menos aún en un array fijo de tamaño.
Pero, repito, habría que saber exactamente el proceso para dar una opinión.
Responder Con Cita
  #4  
Antiguo 04-04-2014
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Lista dinámica. Solo usará la memoria que necesite el fichero.

Reservar todo desde un principio es un gasto tremendo, además de limitar a ese tamaño.

Yo no uso registros nunca, siempre objetos, pero bueno, podrías tirar por:
- array of string[10] y luego con SetLength ir añadiendo los registros.

- Crear un descendiente de TList y cargar ahí cada registro. La ventaja es que puedes ordenar los datos con el TList de forma rápida, los algoritmos de ordenación están ya creados. Las funciones de insert, delete, indexof, etc, ya las tienes implementadas.

- Usar un TFileStream que es acceso directo a fichero. Es lo que usan notepad++ para abrir ficheros de textos de muchos megas en pocos segundos. Si son registros de tamaño fijo como veo, puedes calcular qué registro quieres leer y acceder solo a ese. Hoy día los discos son muy rápidos. Yo voto por este método si no necesitas ordenar los datos, comparar, etc.

También puedes tirar de TObjectList y si usas los nuevos XE, de Templates, que son Listas de fácil implementación.

Son casi 2 Megas de RAM (suponiendo cada carácter es 1 byte)...


Perdón, no he respondido a tu pregunta. Stack Overflow es porque los datos lo estás cargando en la pila de la aplicación y se queda corta para pasar todos esos datos ¿lo pasas por parámetro a otras funciones?. La solución guarra es aumentar el tamaño de la pila en Delphi para tu proyecto (Opciones del proyecto).

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Stack Overflow Guillermo80 Varios 10 01-06-2008 21:41:36
stack overflow juan francisco Varios 6 28-05-2008 22:26:15
Stack overflow aonarres API de Windows 5 29-02-2008 13:07:11
Stack Overflow agonzalez Varios 5 08-12-2006 22:26:46
Stack Overflow Mariana Varios 14 30-10-2003 11:37:47


La franja horaria es GMT +2. Ahora son las 01:32:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi