![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
¿Haz probado a importar solo una pequeña parte del fichero?
Copia 10 o 20 lineas del txt original (o el número que tenga sentido) a un txt de prueba y ves qué pasa con el log. |
|
#2
|
|||
|
|||
|
Ya te envie todo, pero si he probado y no me da error sin cancelo el proceso y tengo pocos registros. Lo malo es que es un archivo inmenso y debe trabajarse por completo no lo envían por partes.
|
|
#3
|
||||
|
||||
|
Parece que tienes un problema de capacidad de memoria.
No tengo el componente que utilizas (TAdvStringGrid), pero parece que tiene algunas funcionalidades que el TStringGrid no tiene. En especial la de AddRow. Esto me hace suponer que también debe tener DelRow o algo para borrar una línea. Veo que tienes dos StringGrids, pero que solo necesitas uno a la vez. Lo que puedes probar es llenar uno mientras vacías el otro. Puedes hacer la siguiente prueba:
Nota: No se como estará implementado DataGrid.DelRow. Quizás debas pasarle el nro de línea a borrar. En este caso sería la 1. DataGrid.DelRow(1); |
|
#4
|
|||
|
|||
|
Ok voy a implementar las lineas a ver
|
|
#5
|
||||
|
||||
|
He estado jugando un poco con el código y he creado esta función, que creo que hace lo que tu necesitas, pero no lo va pasando de Memo en Memo...
La única interacción que tiene con el formulario es el Label que cuenta las líneas. Si quitas eso y el Application.ProcessMessages será mucho más rápido. He creado un botón llamado ButtonAgrupar y le he puesto el código. No utiliza StringGrids, que son visuales, por lo que no utiliza tanta memoria. De todos modos carga el texto en un TStringList. Es fácilmete modificable para no utilizar nada de memoria, abriendo el archivo origen y escribiendo en el archivo destino mediante Readln(F, s); y Writeln(F, s); Espero que te sirva.
|
|
#6
|
||||
|
||||
|
Con este procedimiento he logrado procesar los 177000 registros
Solo he tenido que controlar que el valor de monto se pudiera convertir mediante
También he hecho la prueba de copiar y pegar dos veces el text con 354000 lineas. También lo pude tratar en una máquina virtual con 384 MB de RAM. |
|
#7
|
|||
|
|||
|
Si muchas gracias el codigo funciona de maravillas, con la except que cuando un valor en la linea falta y esta rueda los valores que toma son diferentes. he tratado de controlarlo pero los casos varian a veces son 10 spacios o 5 spacios menos.
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Hacer que una columna de un DbGrid aparezca distinta según valor | Aprendiendo | OOP | 11 | 30-11-2018 14:47:20 |
| Problemas con Totalizar una columna de un DBGrid | JoAnCa | Conexión con bases de datos | 2 | 22-08-2008 15:55:20 |
| Hacer readonly una columna en stringgrid | zcatzz | Varios | 5 | 26-09-2007 16:59:50 |
| Como hacer para que el ancho de una columna de un TListView permanezca inalterable | abracadabra | OOP | 17 | 01-10-2005 00:33:35 |
| como hacer que una columna del dbgrid contenga un valor de un TEdit en cada celda | Shidalis | OOP | 2 | 02-08-2005 12:05:35 |
|