Rochinha, o "Restaurar agora..." continua sem funcionar... Mistérios...
Código: Selecionar todos
/*
// Autor: By Rochinha - Forum PcToledo.
// https://pctoledo.org/forum/viewtopic.php?f=2&t=8731
// Modificado por: Joao Santos em: 22/03/2017
// Email: kapiabafwh@gmail.com
*/
#include "FiveWin.ch"
#Define CLR_MENTA RGB(221,255,238)
MEMVAR cPath
FUNCTION NFWBackup()
local oDLGARQ, oGet, lGo := .f., lGrava := .t., lDireta := .t.
local lOverWrite:=.t., cPassword:="5volution"
local lCtrl101,nCtrl102:=15,lCtrl103,lCtrl104,lCtrl105,nCtrl106:=1,;
cCtrl107:="DIA(S)",nCtrl108:=1,cCtrl109:=SPACE(50)
LOCAL cBKPName, cZIPName, cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
cBKPDest, cBKPOrig, oCtrl102, oBitMap
cPath := cFilePath( GetModuleFileName( GetInstance() ) )
SetBalloon( .T. ) // Balloon shape required for tooltips
SkinButtons() // Botoes Coloridos nas novas versoes
SetGetColorFocus( CLR_MENTA ) // COR NO GET
tGet():lDisColors := .F. // WHEN( .F. ) COM COR.
tGet():nClrTextDis := CLR_HBLUE
tGet():nClrPaneDis := CLR_HRED
//---------------------Rochinha------------------------------------------//
cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. )
cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )
// Pega os arquivos destes formatos.
cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )
nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" )
lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" )
cPassword := VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution") , cPath+"5vbackup.ini" )
cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" )
cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" )
cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" )
VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" )
VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" )
DEFINE DIALOG oDLGARQ NAME "dlgBackup" ;
COLORS CLR_BLACK, CLR_WHITE TRANSPARENT
oDLGARQ:lHelpIcon := .F.
// REDEFINE CHECKBOX oCtrl101 VAR lCtrl101 ID 101 OF oDLGARQ
// REDEFINE GET oCtrl102 VAR nCtrl102 ID 102 PICTURE "999" OF oDLGARQ WHEN lCtrl101 ;
// SPINNER ;
// ON UP (++nCtrl102,oCtrl102:Refresh()) ;
// ON DOWN (--nCtrl102,oCtrl102:Refresh())
REDEFINE GET oCtrl102 VAR cBKPOrig ID 102 PICTURE "@!" OF oDLGARQ ;
WHEN nCtrl108=1
REDEFINE BUTTON ID 103 OF oDLGARQ ;
ACTION( cBKPOrig := cGetDir("Pesquise no conjunto de pastas na caixa abaixo qual o diretorio contem os dados de que necessita","C:\"),oCtrl102:Refresh(),;
VerifyINI( "BACKUP", "DESTINO", cBKPOrig, cPath+"5vbackup.ini", .t. ),;
VerifyINI( "BACKUP", "ORIGEM" , cBKPOrig, cPath+"5vbackup.ini", .t. ) )
// REDEFINE CHECKBOX oCtrl105 VAR lCtrl105 ID 105 OF oDLGARQ
// REDEFINE GET oCtrl106 VAR nCtrl106 ID 106 PICTURE "999" OF oDLGARQ ;
// SPINNER ;
// ON UP (++nCtrl106,oCtrl106:Refresh()) ;
// ON DOWN (--nCtrl106,oCtrl106:Refresh())
// REDEFINE COMBOBOX oCtrl107 VAR cCtrl107 ITEMS { "Mese(s)", "Semana(s)", "Dia(s)", "Ano(s)" } OF oDLGARQ ID 107
REDEFINE BITMAP oBitMap ID 101 OF oDLGARQ RESOURCE "bmp006" //TRANSPARENT
REDEFINE BITMAP oBitMap ID 104 OF oDLGARQ RESOURCE "bmp006" //TRANSPARENT
REDEFINE BUTTON ID 105 OF oDLGARQ ;
ACTION ZipBackup()
REDEFINE BUTTON ID 106 OF oDLGARQ ;
ACTION ZipRestore()
REDEFINE BUTTON ID 107 OF oDLGARQ ;
ACTION (lGo := .f., oDLGARQ:End()) CANCEL
ACTIVATE DIALOG oDLGARQ CENTERED
//VerifyINI( "BACKUP" , "Nome" , cZIPName , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "Email" , cZIPEmail , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "Arquivos" , cZIPFiles , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "Nivel" , nZIPNivel , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "Reescreve" , lOverWrite, cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "PassWord" , cPassword , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "AUTOMATICO", cBKPAuto , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "DESTINO" , cBKPDest , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "ORIGEM" , cBKPOrig , cPath+"5vbackup.ini", .t. )
RETURN NIL
FUNCTION ZIPBackup()
LOCAL oMeter
SET _3DLOOK ON
MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
ZipIn(oMeter) },;
"Gerando arquivo compactado...", "Backup/Restore" )
Return .f.
FUNCTION ZipIn(oMeter)
LOCAL lOverWrite := .t., cPassword := "5volution"
LOCAL cBKPName, cZIPName, cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
cBKPDest, cBKPOrig, aZipFiles
cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. )
cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )
cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )
nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" )
lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" )
cPassword := VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution") , cPath+"5vbackup.ini" )
cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" )
cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" )
cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" )
VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" )
VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" )
aZipFiles := ProcessaArray( StringToArray( cZIPFiles, ";" ) )
oMeter:nTotal:=Len(aZIPFiles)
cBKPOrig := curdrive()+":\"+curdir()
if !file(cBKPOrig+"\"+cZIPName)
Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )
else
//fErase(cBKPOrig+"\"+cZIPName)
//if MsgYesNo( "Arquivo ("+cBKPName+") ja existe, Deseja re-escrever", "Atencao" )
// Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )
//endif
endif
return .t.
FUNCTION ZIPRestore()
LOCAL oMeter
SET _3DLOOK ON
MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
ZipOut(oMeter) },;
"Descompactando arquivo...", "Backup/Restore" )
Return Nil
FUNCTION ZipOut(oMeter)
LOCAL lOverWrite:=.t., cPassword:="5volution"
LOCAL cBKPName, cZIPName, cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
cBKPDest, cBKPOrig, aZipFiles
cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. )
lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" )
cPassword := DeCodifica(VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution") , cPath+"5vbackup.ini" ))
cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" )
oMeter:nTotal:=len(HB_GetFilesInZip( cZIPName ))
HB_UNZIPFILE(cBKPDest+"\"+cZIPName,,,,cBKPDest,,{|cFile,nPos|(oMeter:Set(nPos),SysRefresh())})
return .t.
FUNCTION ProcessaArray( aQArray )
LOCAL aTArray := {}
LOCAL I, DBF_NOMES, II
for i = 1 to len( aQArray )
DBF_NOMES := ARRAY( ADIR( aQArray[i] ) )
ADIR( aQArray[i], DBF_NOMES )
for ii = 1 to len( DBF_NOMES )
AADD( aTArray, DBF_NOMES[ii] )
next
next
return aTArray
FUNCTION CheckBKP()
LOCAL cBKPName, cZIPName, cZIPEmail, cZIPFiles, nZIPNivel, cBKPAuto, ;
cBKPDest, cBKPOrig, aZipFiles
cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" )
cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. )
cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" )
cBKPOrig := curdrive()+":\"+curdir()
if cBKPAuto = "S"
if !file(cBKPOrig+"\"+cZIPName)
if Val(TTOS(time())) > 173000
if MsgYesNo( "Backup de seguranca de hoje nao existe. "+CRLF+"Deseja efetuar o backup?", "Atencao" )
ZIPBackup()
endif
endif
endif
endif
return .t.
FUNCTION VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ )
LOCAL oIni
oIni := TIni():New( _inifile_ )
if _grava_ = .t.
oIni:Set( _section_, _entry_, _var_ )
endif
return oIni:Get( _section_, _entry_, _var_, _var_ )
function codifica( _pass_ )
LOCAL _senha_, I
_senha_ := ''
for i = 1 to len(alltrim(_pass_))
_senha_ := _senha_ + chr(asc(substr(_pass_,i,1))+9)
next
return _senha_
function decodifica( _pass_ )
LOCAL _senha_, I
_senha_ := ''
for i = 1 to len(alltrim(_pass_))
_senha_ := _senha_ + chr(asc(substr(_pass_,i,1))-9)
next
return _senha_
function StringToArray( cString, cSeparator )
LOCAL nPos
LOCAL aString := {}
DEFAULT cSeparator := ";"
cString := ALLTRIM( cString ) + cSeparator
DO WHILE .T.
nPos := AT( cSeparator, cString )
IF nPos = 0
EXIT
ENDIF
AADD( aString, SUBSTR( cString, 1, nPos-1 ) )
cString := SUBSTR( cString, nPos+1 )
SYSREFRESH()
ENDDO
RETURN ( aString )
function ArrayToString( aArray, cSeparator )
LOCAL nPos, cString
DEFAULT cSeparator := ";"
cString := ""
FOR nPos = 1 TO LEN(aArray)
cString := cString + aArray[nPos] + cSeparator
NEXT
RETURN ( cString )
// FIN
Abs.