![]() |
![]() |
| 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
|
||||
|
||||
|
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); |
|
#2
|
|||
|
|||
|
Ok voy a implementar las lineas a ver
|
|
#3
|
||||
|
||||
|
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.
|
|
#4
|
||||
|
||||
|
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. |
|
#5
|
|||
|
|||
|
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.
|
|
#6
|
|||
|
|||
|
tambien me añade la ultima fila mal
|
|
#7
|
||||
|
||||
|
Este es el formato de tu fichero:
La línea de en medio es una que tiene una longitud incorrecta porque falta un dato en medio. Código:
1 2 3 4 5 6 7 8 9 0
123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
F------F A-------------A M------------MN------------------------------------------------------------------------------N
0420000033011201203004457 29 12546964 A010010010100001516000000000366700PORTORREAL GIL RODNER FRANCISCO MED001
0420000033011201203004457 29 12546964 A010010010100001516000000000366700PORTORREAL GIL RODNER FRANCISCO MED001
042000003301120120 12607904 A010010010100001516000000000037500PORTORREAL GIL RODNER FRANCISCO S20001
0420000033011201204000000000 12647953 A010010010100001516000000000038900QUEZADA DE CABRERA ORIA ESTHER 881201
0420000033011201204000000000 12647953 A010010010100001516000000000038900QUEZADA DE CABRERA ORIA ESTHER 881340
La primera verificación, antes de procesarla deberá ser comprobar la longitud. Si no es correcta, deberas descartarla y enviar un mensaje o advertencia o lo que sea necesario hacer. Además de esto, veo que estas desfasado 1 caracter a la izquierda con respecto al campo AUTORIZACION. |
|
#8
|
|||
|
|||
|
Muchas gracias duilioisola por la ayuda, el código es perfecto ya he hecho unos arreglos extras y todo marcha de maravillas. Dure mucho para darme cuenta que no era que no estaba acumulando valor sino que me repetia el nombre anterior para eso guardo en variables extras ... Publico codigo para aquellos que lo necesiten.
|
![]() |
| 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 |
|