Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Copiar fichero con origen/destino definido por usuario (https://www.clubdelphi.com/foros/showthread.php?t=47386)

TrUnkS 26-08-2007 19:40:27

Copiar fichero con origen/destino definido por usuario
 
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.
Código Delphi [-]
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);

droguerman 26-08-2007 19:43:29

pon dos componentes un OPenDialog y un SaveDialog y haz la siguiente modificacion

Código Delphi [-]
if OpenDialog1.execute then Origen := Opendialog1.filename;
if SaveDialog1.execute then destino := SaveDialog1.filename;
//aqui el resto de tu código

saludos

cHackAll 28-08-2007 07:11:57

Creo qe lo que quiso decir droguerman era:

Código Delphi [-]
if OpenDialog1.execute then AssignFile(Origen, OpenDialog1.FileName);
if SaveDialog1.execute then AssignFile(Destino, SaveDialog1.FileName);


La franja horaria es GMT +2. Ahora son las 04:00:12.

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