![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Vaya!, perdonad, estaba enfrascado con el tema de marras todo este tiempo....
Le he echado un vistazo al código. Dices que puedes cargar 2.000.000 de lineas en el tstringlist, aunque no se el tamaño maximo (no de lineas) sino de memoria que se puede cargar con un tstringlist. Lo voy a probar, me preocupa el tiempo de carga y el consumo excesivo de memoria. Muchas gracias :-) |
|
#2
|
|||
|
|||
|
Hola de nuevo,
Os pego el trozo de codigo (aparecen variables declaradas globalmente) en el que estoy trabajando que de momento parece que me funciona aunque seguro que se puede mejorar/optimizar, pero es por donde voy :-)
|
|
#3
|
||||
|
||||
|
Para eso lo mejor puede ser usar el api de windows, que permite colgar un hook o como se llame que "avisa" cada vez que se modifique el archivo que quieras. No me acuerdo que función es, pero existe.
EDITO: Una busqueda en google por "delphi file notification" devielve un motón de entradas parecidas a esta: http://www.delphi-central.com/compon...ification.aspx
__________________
"la única iglesia que ilumina es la que arde" Anonimo |
|
#4
|
|||
|
|||
|
Gracias Julian, lo estudiaré :-)
Saludos. |
|
#5
|
||||
|
||||
|
paquechu,
Cita:
Cita:
Te sugiero revisar detalladamente el código del Msg #6 (function GetLastLine), el código es altamente eficiente dado que solo obtiene la última línea del archivo de forma directa, lo cual la hace ideal como parte de un control TTimer y sin sobrecarga de recursos. Como comentario, funciono de forma optima con el archivo de pruebas mencionado. Espero sea útil ![]() Nelson. Última edición por nlsgarcia fecha: 24-03-2013 a las 23:04:51. |
|
#6
|
||||
|
||||
|
Hola paquechu.
Dado que la aplicación que genera el log añade líneas, este cambiará su tamaño. Entonces, una forma de detectar si se agregó una linea usando un TTimer, podría ser: No sé si es la forma mas optima, pero es simple y en mis pruebas funciona. Hasta que encuentres algo mejor tal vez te sirva... Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#7
|
|||
|
|||
|
Hola Ecfisa,
COmo comentaba en mi anterior mensaje, el código que he utilizado se basa en tu funcion GetLastLine. Ya veo que lo has mejorado. Lo voy a probar (aunque la adaptación que os puse también me funciona). Un saludo y gracias. Cita:
|
|
#8
|
|||
|
|||
|
Por mi parte, me doy más que satisfecho con la acogida y ayuda que me habeis prestado y doy por cerrado este asunto.
Estaba un poco agobiadete con este tema. Muchisimas gracias a todos ![]() Un cordial saludo |
|
#9
|
|||
|
|||
|
Hola nlsgarcia,
Gracias por las aclaraciones, respecto al codigo del mensaje numero 6 (GetLastLine), efectívamente, es el que he tomado como base y he logrado adaptar a la idea que iba buscando. Muchas gracias :-) Cita:
|
|
#10
|
|||
|
|||
|
Buenas,
He probado el código que proponias, sin embargo al ejecutarlo sobre un archivo abierto de log se "queja" de que está abierto por otra aplicación y no puede continuar..... seguiré probando el resto de vuestras propuestas :-) Saludos. Cita:
|
|
#11
|
||||
|
||||
|
Cita:
Muy probablemente tengas ese problema con cualquiera de las sugerencias de este hilo, eso es a lo que me refería en el mensaje (#4). Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#12
|
|||
|
|||
|
Si, eso es, pero se soluciona añadiendo el flag fmShareDenyNone en el momento de abrir el archivo
Saludos. :-) Cita:
|
![]() |
|
|
|