TrUnkS
26-08-2007, 19:40:27
Hola amigos. Trato de copiar mi base de datos del directorio origen a una unidad de disco definida por el usuario y con una ProgressBar para mostrar el progreso de la copia. Lo que necesito es que el usuario seleccione la unidad de destino del archivo. Tengo el siguiente código (trucomania) que copia el archivo de una unidad de origen a una destino, pero no me da la opcion para que el usuario decida donde guardar la copia del archivo. En la sección de trucos no me funciona el hilo que hay respecto al tema. Espero me haya explicado bién y agradezco cualquier ayuda, de antemano gracias.
procedure TFImportar.BBIniciarClick(Sender: TObject); // inicia la copia del archivo
var
Origen,
Destino :file of byte;
Buffer :array[0..4096] of char;
Leidos :integer;
Longitud :longint;
begin
// Abrimos fichero Origen y Destino}
AssignFile(Origen,'C:\Archivos de programa\Sistema de Facturación\Database\DBASE.fdb');
reset(Origen);
AssignFile(Destino,'C:\DBASE.fdb');
rewrite(Destino);
// Hallamos la longitud del fichero a copiar
Longitud:=FileSize(Origen);
// Actualizamos limites de la ProgressBar}
ProgressBar.Max := Longitud;
ProgressBar.Min := 0;
while Longitud >0 do
begin
BlockRead(Origen,Buffer[0],SizeOf(Buffer),Leidos);
Longitud:=Longitud - Leidos;
BlockWrite(Destino,Buffer[0],Leidos);
ProgressBar.Position:=ProgressBar.Position + Leidos;
end;
CloseFile(Origen);
CloseFile(Destino);
procedure TFImportar.BBIniciarClick(Sender: TObject); // inicia la copia del archivo
var
Origen,
Destino :file of byte;
Buffer :array[0..4096] of char;
Leidos :integer;
Longitud :longint;
begin
// Abrimos fichero Origen y Destino}
AssignFile(Origen,'C:\Archivos de programa\Sistema de Facturación\Database\DBASE.fdb');
reset(Origen);
AssignFile(Destino,'C:\DBASE.fdb');
rewrite(Destino);
// Hallamos la longitud del fichero a copiar
Longitud:=FileSize(Origen);
// Actualizamos limites de la ProgressBar}
ProgressBar.Max := Longitud;
ProgressBar.Min := 0;
while Longitud >0 do
begin
BlockRead(Origen,Buffer[0],SizeOf(Buffer),Leidos);
Longitud:=Longitud - Leidos;
BlockWrite(Destino,Buffer[0],Leidos);
ProgressBar.Position:=ProgressBar.Position + Leidos;
end;
CloseFile(Origen);
CloseFile(Destino);