Ver Mensaje Individual
  #1  
Antiguo 08-12-2003
URBANO URBANO is offline
Miembro
 
Registrado: jul 2003
Ubicación: Huelva
Posts: 126
Reputación: 21
URBANO Va por buen camino
Question lectura lenta de un archivo .DAT, ¿por que?

Hola foro, tengo un programa el cual abre un archivo .DAT que almacena un número de registros y los graba en una tabla (hecha en access). El problema que tengo es que si hay almacenados entre 1 y 40 registros la lectura se hace rapida pero si hay entre 50 y 100, la lectura es demasiado lenta (puede tardar en leer y grabar los registros unos 15 minutos).
Alguien puede decirme de que manera puedo obtimizar esta lectura.
Acontinuacion pongo el código que utilizo para leer y grabar los registros:

procedure TFimportacion.aceptarClick(Sender: TObject);
var
cantidad: integer;
begin
screen.Cursor:=crhourglass;
progressbar1.position:=0;
if (edit1.Text<>'')then
begin
AssignFile(archivoatm,edit1.text);
Try
Reset(archivoatm);
Except On Exception Do
begin
showmessage('No es posible abrir el archivo.');
close;
exit;
end;
end;
while not eof(archivoatm) do
begin
try
read(archivoatm, visado);
except on exception do
begin
showmessage('Fallo de lectura.');
exit;
end;
end;
cantidad:=visado.cantidad;
label3.Caption:=inttostr(visado.numero)+'/'+visado.letra;
fimportacion.Refresh;
tablas.VISADOS.Append;
tablas.VISADOSNUMERO.value:=visado.numero;
tablas.VISADOSLETRA.value:=visado.letra;
tablas.VISADOSPROYECTO1.value:=visado.proyecto1;
tablas.VISADOSPROYECTO2.value:=visado.proyecto2;
tablas.VISADOSCODIGOCO.value:=visado.codigoco;
tablas.VISADOSPRESUPUESTO.value:=visado.presupuesto;
tablas.VISADOSGRUPO.value:=visado.grupo;
tablas.VISADOSPAGAR.value:=visado.pagar;
tablas.VISADOSIVA.value:=visado.iva;
tablas.VISADOSTOTALIVA.value:=visado.totaliva;
tablas.VISADOSPAGARIVA.value:=visado.pagariva;
tablas.VISADOSFECHA.value:=visado.fecha;
tablas.VISADOSTOTALEUROS.value:=visado.totaleuros;
tablas.VISADOSNOMBREEM.Value:=visado.nombreem;
tablas.VISADOSCIFEM.value:=visado.cifem;
tablas.VISADOSDIRECCIONEM.value:=visado.direccionem;
tablas.VISADOSPOBLACIONEM.value:=visado.poblacionem;
tablas.VISADOSNOMBRET.value:=visado.nombreet;
tablas.VISADOSCIFT.value:=visado.cift;
tablas.VISADOSDIRECCIONT.value:=visado.direcciont;
tablas.VISADOSPOBLACIONT.value:=visado.poblaciont;
tablas.VISADOSCOLEGIOCO.value:=visado.colegioco;
principal.menu1.tag:=1;
tablas.VISADOS.post;
progressbar1.Position:=progressbar1.position+round(100/cantidad);
principal.menu1.tag:=0;
end;
closefile(archivoatm);
progressbar1.Position:=100;
screen.cursor:=crdefault;
showmessage('Importacion realizada con éxito.');
principal.menu1.tag:=0;
fimportacion.close;
end
else
begin
screen.cursor:=crdefault;
showmessage('Debes de introducir una ruta.');
edit1.setfocus;
end;

end;
__________________
El saber no ocupa lugar.
Responder Con Cita