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); Linea.QuoteChar:= ' ';
Archivo.LoadFromFile(filetxt);
progressbar1.Min := 0;
progressbar1.Max := Archivo.Count - 2;
for i:= 0 to Archivo.Count - 1 do
begin
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];
compras.Post;
end; if i <= progressbar1.Max then progressbar1.Position := i;
Application.ProcessMessages;
end; 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?