Skip to content

Commit

Permalink
06:15 pm
Browse files Browse the repository at this point in the history
>Mejora: Funcion para descargar desde servidor ftp
  • Loading branch information
isaelfeliciano committed Nov 14, 2012
1 parent f7763af commit 7beca4c
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 12 deletions.
15 changes: 12 additions & 3 deletions UActualizador.dfm
Expand Up @@ -1992,20 +1992,29 @@ object FActualizador: TFActualizador
Enabled = False
Interval = 500
OnTimer = Timer4Timer
Left = 216
Left = 272
Top = 8
end
object SHChangeNotify1: TSHChangeNotify
HardDriveOnly = False
OnUpdateDir = SHChangeNotify1UpdateDir
Left = 184
Left = 240
Top = 8
end
object Timer5: TTimer
Enabled = False
Interval = 300000
OnTimer = Timer5Timer
Left = 152
Left = 208
Top = 8
end
object IdFTP1: TIdFTP
MaxLineAction = maException
ReadTimeout = 0
OnWork = IdFTP1Work
ProxySettings.ProxyType = fpcmNone
ProxySettings.Port = 0
Left = 176
Top = 8
end
end
81 changes: 76 additions & 5 deletions UActualizador.pas
Expand Up @@ -7,7 +7,8 @@ interface
Dialogs, DBXpress, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
IdIcmpClient, StdCtrls, DB, DBClient, SimpleDS, SqlExpr, Gauges, Buttons,
Menus, IniFiles, Grids, DBGrids, ComCtrls, ShellApi, Registry, ExtCtrls,
TrayIcon, jpeg, ShellCtrls, SHChangeNotify;
TrayIcon, jpeg, ShellCtrls, SHChangeNotify, IdTCPConnection, IdTCPClient,
IdFTP;

type
TFActualizador = class(TForm)
Expand Down Expand Up @@ -75,6 +76,7 @@ TFActualizador = class(TForm)
SHChangeNotify1: TSHChangeNotify;
Timer5: TTimer;
CbLetraDisco: TComboBox;
IdFTP1: TIdFTP;


procedure BitBtn1Click(Sender: TObject);
Expand All @@ -99,6 +101,8 @@ TFActualizador = class(TForm)
procedure SHChangeNotify1Delete(Sender: TObject; Flags: Cardinal;
Path1: String);
procedure Timer5Timer(Sender: TObject);
procedure IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);


private
Expand All @@ -113,6 +117,7 @@ TFActualizador = class(TForm)
procedure CerrarEs;
public
Ruta: String;
Procedure DescargarArchivo;
Procedure Copiando_Rars;
Procedure CerrandoEs;
Procedure CompararFecha;
Expand All @@ -129,7 +134,10 @@ TFActualizador = class(TForm)
lpFileOp: TSHFileOpStruct;
Hora_Mod: TDateTime;
Auto_Act: Boolean;

//
Afiles: TStringList;
i,r,BarraProgreso: Integer;
FTP: TIdFTP;
implementation

uses UnuevaAct;
Expand Down Expand Up @@ -261,11 +269,66 @@ procedure TFActualizador.PonerProgramaInicio;
end;

shellexecute(Handle, 'open',Pchar(Kill_Task),nil,nil,SW_HIDE);
Copiando_Rars;
DescargarArchivo;
//Copiando_Rars;

end;
///////////////////////////////CERRANDO ES: FIN

///////////////////////////////DESCARGANDO_ARCHIVO: INICIO
Procedure TFActualizador.DescargarArchivo;
var
//FTP: TIdFTP;
Barra: Integer;
begin
FActualizador.Top:= Screen.WorkAreaHeight -187;
FActualizador.Left:= Screen.WorkAreaWidth -597;
FTP := TIdFTP.Create( nil );
FTP.OnWork := IdFTP1Work;
//FTP.EndWork(wmRead):= IdFTP1WorkEnd
FTP.Username := 'isaelfeliciano_zxq';
FTP.Password := 'Ri846161636';
FTP.Host := 'isaelfeliciano.zxq.net';
Barra:= 0;
try
FTP.Connect;

except
raise Exception.Create( 'No se ha podido conectar con el servidor1 ' + FTP.Host );
end;

FTP.ChangeDir( '/Actualizaciones/' );
Afiles:= TStringList.Create;
FTP.List(AFiles, '*.rar', False);
for r := 0 to Afiles.Count -1 do begin
Barra:= Barra + FTP.Size( ExtractFileName( AFiles[r] ) );
end;
Gauge1.MinValue:= 0;
Gauge1.MaxValue:= Barra;
for i := 0 to Afiles.Count -1 do begin
//ListBox1.Items.add(AFiles[i]);


//Label1.Caption:= Afiles[i];
try
FTP.BeginWork(wmRead);
FTP.Get( ExtractFileName(AFiles[i]), 'D:\Easy System S2010\'+AFiles[i], True, True );
Sleep(500);
Except
raise Exception.Create( 'No se ha podido conectar con el servidor2 ' + FTP.Host );
end;
end;

FTP.EndWork(wmRead);
FTP.Disconnect;
FTP.Free;
if Gauge1.Progress = Gauge1.MaxValue then begin
Descomprimir_Rars;
end;
end;
///////////////////////////////DESCARGANDO_ARCHIVO: FIN


///////////////////////////////COPIANDO RAR'S: INICIO
Procedure TFActualizador.Copiando_Rars;
var lpFileOp: TSHFileOpStruct; i: Integer;
Expand Down Expand Up @@ -305,7 +368,7 @@ procedure TFActualizador.PonerProgramaInicio;
CrearArchivoBat(Ruta+'Unrar.bat');
shellexecute(Handle, 'open',Pchar(Unrar),nil,nil,SW_HIDE);
For i:= 25 to 75 do
Gauge1.Progress:= i;
//Gauge1.Progress:= i;
///////////////////////////////DESCOMPRIMIENDO Y BORRANDO RAR'S: FIN

Label2.Caption:= 'Modificando Base de Datos...';
Expand All @@ -314,14 +377,15 @@ procedure TFActualizador.PonerProgramaInicio;
Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
Ini.WriteString( 'ComboBox1', 'Num_Act', IntToStr(Num2) );
For i:= 75 to 100 do
Gauge1.Progress:= i;
//Gauge1.Progress:= i;
Label2.Caption:= 'Actualizacion Terminada';
Ruta_Es_Exe:= Ruta+'Easy_System_S2010.exe';
//shellexecute(Handle, 'open',PChar(Ruta_Es_Exe),nil,nil,SW_NORMAL);
Label2.Caption:='';
Timer2.Enabled:= True;
Label2.Caption:= 'ACTUALIZADO';
Gauge1.Progress:= 0;
Sleep(1000);
ShowMessage('Actualizacion Completa. Puede abrir el SISTEMA');
end;

Expand Down Expand Up @@ -779,4 +843,11 @@ procedure TFActualizador.Timer5Timer(Sender: TObject);
CompararFecha2
end;

procedure TFActualizador.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
BarraProgreso:= BarraProgreso + AWorkCount div 3;
Gauge1.Progress := BarraProgreso;
end;

end.
8 changes: 4 additions & 4 deletions UActualizador.~pas
Expand Up @@ -230,15 +230,15 @@ end;

///////////////////////////////CERRAR ES: INICIO
Procedure TFActualizador.CerrarEs;
var PreviousHandle :THandle;
var PreviousHandle2 :THandle;
begin
PreviousHandle:= FindWindow('TFNuevaAct', 'Nueva Actualizacion');
if PreviousHandle = 0 then
PreviousHandle2:= FindWindow('TFNuevaAct', 'Nueva Actualizacion');
if PreviousHandle2 = 0 then
begin
Application.CreateForm(TFNuevaAct, FNuevaAct);
end
else
SetForeGroundWindow(PreviousHandle);
SetForeGroundWindow(PreviousHandle2);
end;
///////////////////////////////CERRAR ES: FIN

Expand Down

0 comments on commit 7beca4c

Please sign in to comment.