FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
hola,
de que tamaño desean el fichero? cuantas lineas? gracias Anel |
#2
|
||||
|
||||
Anel Hernandez,
Cita:
Te comento: 1- En principio sería suficiente un archivo con las primeras 100 líneas, la idea es poder crear uno con una estructura similar a efectos de prueba. 2- ¿Cual es el mayor y menor tamaño registrado para un archivo meteorológico?, ¿Cual es el tamaño promedio?. 3- Si como se indica en el Msg #3 trabajas con archivos de texto con tamaños en el orden de los GB y decenas de miles de registros, es conveniente analizar formas alternas de manejo de la data, por ejemplo por medio de una BD, ¿Podrías explicar un poco el proceso de generación, carga y procesamiento de la información meteorológica en cuestión?. En resumen : No es conveniente manejar tal cantidad de datos en memoria, el problema no son los TStringList es el volumen de la data. Espero sea útil Nelson. Última edición por nlsgarcia fecha: 01-07-2015 a las 07:43:26. |
#3
|
|||
|
|||
hola,
normalmente los modelos de pronostico meteorologicos trabajan con ficheros .nc (netcdf). estos pueden llegar a tener varios GB. hay otros modelos que se alimentan de estos ficheros, modelos de diagnostico meteorologicos, de dispersion atmosferica, fotoquimicos, etc. algunos de ellos tienen herramientas para transformar los ficheros .nc en binarios o de texto. yo estoy trabajando con uno que los usa de texto. son modelos establecidos hace decadas y lo que hago es aplicarlos. no tendria mucho sentido transformar en BBDD. la alternativa que he elegido es intentar optimizar los procesos de conversion etc. ahora un ejemplo simple: en mi caso tengo 66 ficheros de 1.46MB con 31882 lineas cada uno. Debo entonces copiar de los ficheros del 2 al 66, desde la linea 1257 de cada uno hasta la ultima (la 31882) y añadirselos al final del 1ro. Al final tendria un fichero de 101MB y 2 022 507 lineas. ese es un ejemplo simple. pueden ser mas grandes. Adjunto un fichero editado de ejemplo donde suprimo algunas lineas. He intentado con el metodo del BeginUpdate y gana pocos segundos. adjunto imagenes. En mi caso leo con:
y salvo al final en el mismo fichero1
Gracias Anel |
#4
|
||||
|
||||
Hola Anel Hernandez
Adicionalmente al uso de BeginUpdate-EndUpdate, también es recomendable fijar la propiedad Sorted a False. Por otra parte, cuando agregas elementos a una lista dentro de un ciclo, la lista tendrá que ajustar dinámicamente el tamaño de la memoria reservada conforme se requiera. Sin darnos cuenta, esta operación puede repetirse un número considerable de veces y eso afectará el rendimiento. Por este motivo, es muy aconsejable que puedas determinar con anticipación el número de elementos que vas a añadir y esto se puede indicar en la propiedad Capacity. De esta forma reservamos la memoria en una sola operación antes de entrar al ciclo.
Saludos |
#5
|
||||
|
||||
Hola Anel Hernandez.
Tomando en cuenta del formato del archivo que enviaste, proba de este modo:
Código de prueba: Creo que demora un tiempo muy aceptable, Saludos Edito: Lo olvidaba ... - Tamaño de WRF01.DAT: 1,55 MB y WRF02.DAT: 12,3 MB
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 01-07-2015 a las 19:01:13. |
#6
|
|||
|
|||
hola ecfisa,
el ejemplo de tiempo que pones es para 2 ficheros? yo tengo que adicionar 65!!!! de todas maneras pruebo. gracias A |
#7
|
||||
|
||||
Hola Anel Hernandez.
El penúltimo parámetro del procedimiento recibe el nombre del archivo del cuál se extraerán las líneas a ser agregadas. Basta con que envíes los nombres de los archivos a ser tratados de forma secuencial en él (65 o los que gustes). Las líneas extraídas de los N archivos serán añadidas al archivo correspondiente al parámetro fTarget. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 01-07-2015 a las 20:01:36. |
#8
|
||||
|
||||
Esto me recuerda a:
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Borrar una parte de un TStringList | eennzzoo | C++ Builder | 2 | 28-06-2014 14:04:13 |
copiar el contenido de un TStringList a TSringGrid | GerTorresM | Varios | 1 | 02-07-2010 18:38:41 |
copiar la parte seleccionada de un imagen | fasthorse | C++ Builder | 4 | 14-05-2008 20:05:03 |
Copiar parte de la pantalla.... | craven | Gráficos | 2 | 27-08-2003 22:53:01 |
Copiar Parte de un BMP a otro | craven | API de Windows | 1 | 07-07-2003 10:45:34 |
|