Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2006
Avatar de halcon_rojo
halcon_rojo halcon_rojo is offline
Miembro
 
Registrado: abr 2006
Posts: 14
Poder: 0
halcon_rojo Va por buen camino
Post Cual la capacidad de un TStringList?

Hola a todos mi duda es si el TStringList tiene alguna limitacion en cuanto al tamaño (o numero de lineas) del archivo con el que trabaja. Mi problema es que tengo una rutina que carga datos desde un archivo de texto a una tabla DBF y hasta ahora el archivo de texto no pasaba los 1.3 MB (como 29mil registros que tarda mas de 10 min) asi que mi rutina funciona bien, pero se presento que el archivo que necesito cargar es de aprox. 6MB con algo mas de 80mil registros. Mi rutina a parte de que tarda un monton, se corta a medias y no se por que.
este es mi codigo (algo resumido):
Código Delphi [-]
begin
  Archivo:= TStringList.Create;
  Linea:= TStringList.Create;
  linea.Te
  try
    Linea.Delimiter:= chr(124); // Caracter pipe
    Linea.QuoteChar:= ' ';
    Archivo.LoadFromFile(filetxt);
    progressbar1.Min := 0;
    progressbar1.Max := Archivo.Count - 2;
    for i:= 0 to Archivo.Count - 1 do
    begin
      // uso lo siguiente para capturar sin problemas datos con espacios en blanco        
      Linea.DelimitedText:= StringReplace(Archivo[i],chr(32),'(_)',[rfReplaceAll]);
           with datamodule1.datos do
           begin 
                    compras.Append;
                    compras.edit;
                    comprasNIT.AsString      := Linea[1];
                    comprasRSOCIAL.AsString  := StringReplace(Linea[2],'(_)',chr(32),[rfReplaceAll]);
                    comprasNFACTURA.AsString := Linea[3];
                    // etc....
                    compras.Post;
            end; // with
        if i <= progressbar1.Max then progressbar1.Position := i;
        Application.ProcessMessages;
    end; //for
  finally
    Archivo.Free;
    Linea.Free;
 end;
se puede hacer esto de otra manera cosa que acepte archivos de texto bastante grandes y que el proceso no tarde mucho?
Responder Con Cita
 



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
Capacidad de Paradox irvingcm Tablas planas 3 13-04-2005 00:41:59
Cual es el limite de capacidad de Paradox? URBANO Tablas planas 1 15-03-2005 09:54:12
Saber exactamente cual es cual en un DBLookUpComboBox bustio OOP 3 03-02-2005 23:16:58
Capacidad del QReport marila Impresión 2 22-04-2004 16:02:47
Capacidad No soportada con BDE GIVO Conexión con bases de datos 3 27-08-2003 03:10:09


La franja horaria es GMT +2. Ahora son las 15:19:24.


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