![]() |
![]() |
![]() |
![]() |
![]() |
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
|
|||
|
|||
Muchas gracias duilioisola por esas lineas
![]() Pero la cantidad de lineas inmensas vienen del txt original pero se carga facil en el memo y cuando ejecuto el primer proceso que se encarga de dividir los valores tomar los que necesito y colocar el punto decimal en la posicion correcta no da problema. ahora cuando estoy realizando el segundo paso que seria totalizar esa informacion por numero de autorizacion en cierto punto da el error de outmemory. te pasare el codigo completo incluyendo el archivo si deseas |
#2
|
|||
|
|||
Aca esta el codigo completo
|
#3
|
|||
|
|||
No puedo enviar el archivo txt ya que el tamaño excede el maximo permitido
|
#4
|
||||
|
||||
¿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. |
#5
|
|||
|
|||
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.
|
#6
|
||||
|
||||
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); |
#7
|
|||
|
|||
Ok voy a implementar las lineas a ver
|
#8
|
||||
|
||||
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.
|
#9
|
||||
|
||||
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. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
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 |
![]() |
|