Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-07-2011
pelikno pelikno is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 95
Poder: 14
pelikno Va por buen camino
Ayuda otra vez!!

Disculpen pero despues de lograr leer los datos de un txt me encuentro con el problema q el txt tiene mas de 3000000 de lineas !!!! o sea cada vez que cargo en un dbgrid el sistemita se me cuelga.
Queria saber si alguien sabe alguna componente para cargar tantas lineas y mostrarlas en una grilla.
lo que tengo es un RxMemoryData donde cargo las lineas que levanto del txt.
tengo un Datasouce conectado con un dbgrid el cual muestra lo que cargue en el RxMemoryData.
Gracias!!!
Responder Con Cita
  #2  
Antiguo 06-07-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
has probado usar ClientDataset ?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 06-07-2011
pelikno pelikno is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 95
Poder: 14
pelikno Va por buen camino
Cita:
Empezado por oscarac Ver Mensaje
has probado usar ClientDataset ?

No que diferencia tiene?? no la he usado.
Responder Con Cita
  #4  
Antiguo 06-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
De todas formas si no pones el código fuente que lo veamos, no nos dice si sale algún error ni cual es, etc...
Responder Con Cita
  #5  
Antiguo 06-07-2011
wal_laplata wal_laplata is offline
Registrado
NULL
 
Registrado: jul 2011
Posts: 2
Poder: 0
wal_laplata Va por buen camino
Código Delphi [-]
begin
  AssignFile(myFile, 'C:\Temp\SELE-SAL-CONSTA.tmp');
  i:=0;
  FileMode := fmOpenRead;
  Reset(myFile);
  Memory.Active:=true;
  while not Eof(myFile) do
  begin
    text:='';
    while length(text) < 21 do
    begin
      Read(myFile, letter) ;   // Read and display one letter at a time
      text:=text + letter ;
    end;
    Read(myFile, letter);
    Memory.Append;
    Memorycuil.Value :=copy(text,1,2)+'-'+copy(text,3,8)+'-'+copy(text,11,1);
    Memoryganancias.Value:=copy(text,12,2);
    Memoryiva.Value:=copy(text,14,2);
    Memorymonotibuto.Value:= copy(text,16,2);
    MemoryintegranteSo.Value:= copy(text,18,1);
    Memoryempleador.Value:=copy(text,19,1);
    MemoryactividadMono.Value:=copy(text,20,2);
    Memory.Post;
    i:=i+1;
    Label1.Caption:=inttostr(i);
  end;
end;

Última edición por ecfisa fecha: 06-07-2011 a las 21:37:43. Razón: ETIQUETAS [DELPHI] [/DELPHI]
Responder Con Cita
  #6  
Antiguo 06-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola wal_laplata.

Por favor cuando pongas código Delphi encerralo entre las etiquetas [delphi] codigo [/delphi] para una mejor legibilidad.

Una pregunta: ¿ Cual es la longitud exácta que ocupa cada registro en el formato texto ?
Es decir en referencia a lo dicho más arriba:
Cita:
20201215749 NI NI NI N N
¿ Los últimos campos tienen longitud fija de dos caracteres, de uno ... ? ¿ Tienen algún separador ?



Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 06-07-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, recuerda poner títulos descriptivos a tus preguntas, "ayuda otra vez!!" no es ningún título descriptivo. No olvides leer nuestra guía de estilo. Gracias.

Cita:
Empezado por pelikno Ver Mensaje
Disculpen pero despues de lograr leer los datos de un txt me encuentro con el problema q el txt tiene mas de 3000000 de lineas !!!! o sea cada vez que cargo en un dbgrid el sistemita se me cuelga.
Queria saber si alguien sabe alguna componente para cargar tantas lineas y mostrarlas en una grilla.
lo que tengo es un RxMemoryData donde cargo las lineas que levanto del txt.
tengo un Datasouce conectado con un dbgrid el cual muestra lo que cargue en el RxMemoryData.
Gracias!!!
El problema que tienes será por la memoria, 3.000.000 de registros son muchos registros para meterlo en memoria, ¿necesitas todos esos registros en memoria?.
Yo uso rxmemorydata y kbmmemtable con muchos registros, pero nunca se me ocurriría cargar en memoria tantos registros. Bueno, mentira, sí lo hago en algunas ocasiones, pero con muy, muy, muy pocos campos.
No es lo mismo tres millones de registros con una tabla de un campo... que 3 millones de registros con una tabla de 20 campos.
Responder Con Cita
  #8  
Antiguo 06-07-2011
wal_laplata wal_laplata is offline
Registrado
NULL
 
Registrado: jul 2011
Posts: 2
Poder: 0
wal_laplata Va por buen camino
Hola Casimiro, soy compañero de Pelikno y te agradezco la respuesta. El tema es que son mas de 5 millones de registros (lista de proveedores de la AFIP en todo el pais) y cada registro contiene 6 campos (cuit como principal y mas extenso, y el resto de los campos son estados de 2 o 1 caracter cada uno)

ejemplo :

cuit ganancia iva sociedad monotributo empleador
20201215749 NI NI NI N N

el tema que acortamos el archivo a 1000000 y tambien se re cuelga.

la idea es levantar los datos que estan en un texto plano y pasarlo a SQL, para poder de esa forma, realizar la actualizacion de los estados de los proveedores que posee el sistema con los de la AFIP. Aclaro que el sistema trabaja con base de datos SQL, por eso queremos unificar todo.
Porque un proveedor puede cambiar su situacion frente a la AFIP, pasar de monotributista a responsable inscripto, por ejemplo

Última edición por wal_laplata fecha: 06-07-2011 a las 20:47:42.
Responder Con Cita
  #9  
Antiguo 06-07-2011
pelikno pelikno is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 95
Poder: 14
pelikno Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por favor, recuerda poner títulos descriptivos a tus preguntas, "ayuda otra vez!!" no es ningún título descriptivo. No olvides leer nuestra guía de estilo. Gracias.



El problema que tienes será por la memoria, 3.000.000 de registros son muchos registros para meterlo en memoria, ¿necesitas todos esos registros en memoria?.
Yo uso rxmemorydata y kbmmemtable con muchos registros, pero nunca se me ocurriría cargar en memoria tantos registros. Bueno, mentira, sí lo hago en algunas ocasiones, pero con muy, muy, muy pocos campos.
No es lo mismo tres millones de registros con una tabla de un campo... que 3 millones de registros con una tabla de 20 campos.
Si Solamente tiene 5 campos el tema q es la informacion que tengo que usar para mantener la base sqlserver que tengo nada mas que en mi base tengo muchisimos menos, es una tabla de proveedores y la tengo que actualizar con ese archivo.txt de 85 Mb !!!! el tema es que me mandan todos los proveedores en el txt yo solo tengo que actualizar diariamente los que tenga en mi base.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ayuda copiar datos de una tabla a otra Rofocale Varios 1 18-05-2011 03:39:40
Ayuda insertar cadena en otra ? Coco_jac Varios 4 14-12-2005 21:37:46
necesito ayuda para pasar registros a otra tabla ddd_ddd Conexión con bases de datos 2 09-09-2005 20:33:41
ayuda para enlazar con otra tabla Debian Conexión con bases de datos 1 24-03-2005 16:48:28
Como puedo tabajar de otra forma un DBGrid, Ayuda urgente danytorres Varios 7 18-07-2003 21:24:02


La franja horaria es GMT +2. Ahora son las 08:39:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi