Realizar Backup o copias de Seguridad desde FW

dobfivewin
Posts: 325
Joined: Sun Feb 03, 2008 11:04 pm
Location: Argetnina

Post by dobfivewin »

dob.ini no hace falta

colocar directamente
#include 'fivewin.ch'

Code: Select all

Function DIRECMain()
local cDirName := cGetDir()
MsgInfo( LFN2SFN( cDirName ) )
Return LFN2SFN( cDirName )
dobfivewin
Posts: 325
Joined: Sun Feb 03, 2008 11:04 pm
Location: Argetnina

Post by dobfivewin »

Code: Select all

Function DIRECMain()
local cDirName := cGetDir()
MsgInfo( LFN2SFN( cDirName ) )
Return LFN2SFN( cDirName )
dobfivewin
Posts: 325
Joined: Sun Feb 03, 2008 11:04 pm
Location: Argetnina

Post by dobfivewin »

Actualizando la Funcion Sugeridad....

Code: Select all

static mUBI_ORI
static mUBI_DES
static mNOMARCHIVO

Function BackupZIP()

local oDlgCar , oFont1

dbcloseall()

DEFINE FONT oFont1 NAME 'Arial' SIZE 0,-15 BOLD

DEFINE DIALOG oDlgCar FROM 0, 0 TO 12, 40 ;
              TITLE 'GUARDAR / RECUPERAR INFORMACION'

  
   @ 1, 8 BUTTON 'Guardar Informacion'  OF oDlgCar SIZE 60, 12 ;
			           ACTION ( ArmarBackup(1) )


   @ 2, 8 BUTTON 'Recuperar Informacion'  OF oDlgCar SIZE 60, 12 ;
			           ACTION ( ArmarBackup(2) )

  
   @ 3, 8 BUTTON 'Salir' OF oDlgCar SIZE 60, 12 ;
	               ACTION ( oDlgCar:End() )

ACTIVATE DIALOG oDlgCar CENTERED

dbcloseall()
return .t.

*-----------------------------------------------------------------------------
Function ArmarBackup(Arma1Extrae2)

local oDlgCar 
local oFont1

local oUBI_ORI , oUBI_DES , oNOMARCHIVO
local xUBI_ORI:=CurDrive()+':\'+CurDir()+'\'

mUBI_ORI:=xUBI_ORI+SPACE(60-LEN(xUBI_ORI))
mUBI_DES:=xUBI_ORI+SPACE(60-LEN(xUBI_ORI))
mNOMARCHIVO:=SPACE(20) 

dbcloseall()

DEFINE FONT oFont1 NAME 'Arial' SIZE 0,-9 //BOLD

DEFINE DIALOG oDlgCar FROM 0, 0 TO 15, 80 ;
              TITLE If(Arma1Extrae2==1,'GUARDAR','RECUPERAR')+' INFORMACION'

   @ 1.750, 1 SAY 'Carpeta de Origen' of oDlgCar

   @ 1.500, 9 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                     ACTION( mUBI_ORI:=DIRECMain() ,;
                             mUBI_ORI:=alltrim(mUBI_ORI)+'\' ,;
                             mUBI_ORI:=mUBI_ORI+space(60-len(mUBI_ORI)) ,;
                             oUBI_ORI:refresh() )

   @     2,10 GET oUBI_ORI var mUBI_ORI of oDlgCar


   @ 2.625, 1 SAY 'Carpeta de Destino' of oDlgCar

   @ 2.250, 9 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                     ACTION( mUBI_DES:=DIRECMain() ,;
                             mUBI_DES:=alltrim(mUBI_DES)+'\' ,;
                             mUBI_DES:=mUBI_DES+space(60-len(mUBI_DES)) ,;
                             oUBI_DES:refresh() )

   @     3,10 GET oUBI_DES var mUBI_DES of oDlgCar


   @ 3.500, 1 SAY 'Archivo ZIP' of oDlgCar

   If Arma1Extrae2 == 2
     @ 2.950, 9 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                       ACTION( mNOMARCHIVO := cGetFile32( 'ZIP  (*.zip)| *.zip|' + 'Seleccione un archivo de ZIP',3) ,;
                               oNOMARCHIVO:refresh() )
   EndIf

   @     4,10 GET oNOMARCHIVO var mNOMARCHIVO of oDlgCar

   If Arma1Extrae2 == 1
     @ 4.3, 10 BUTTON 'Guardar Informacion'  OF oDlgCar SIZE 60, 10 ;
	  		            ACTION ( Backup1(alltrim(mNOMARCHIVO),alltrim(mUBI_ORI),alltrim(mUBI_DES)) ,;
		  	                    oDlgCar:End() )
   Else
     @ 4.3, 10 BUTTON 'Extraer Informacion'  OF oDlgCar SIZE 60, 10 ;
	  		            ACTION ( Backup2(alltrim(mUBI_DES),alltrim(mUBI_ORI),alltrim(mNOMARCHIVO)) ,;
		  	                    oDlgCar:End() )
   EndIf


   @ 4.3, 30 BUTTON 'Salir' OF oDlgCar SIZE 60, 10 ;
	               ACTION ( oDlgCar:End() )

ACTIVATE DIALOG oDlgCar CENTERED

dbcloseall()
return .t.

*-----------------------------------------------------------  GUARDAR INFORMACION
Function Backup1(cFile,cPath,mUBI_DES,cPass)

local aFiles , nI , aZip:={} , nFiles , cDbf 
local oMeter , nActual , oDlg , nLen

If FILE(mUBI_DES+cFile+'.zip') .and. !MsgNoYes(oemtoansi('Archivo Existente, desea Reemplezar ?'),;
                                oemtoansi('Elija opcion SI/NO') )
  return .t.

EndIf

If FILE(cFile+'.zip')
  FErase(cFile+'.zip') 
EndIf

aFiles:=Array(ADir(cPath+'*.DBF')) 
nFiles:=aDir(cPath+'*.DBF',aFiles) 
FOR nI=1 TO nFiles 
   cDbf:=cPath+aFiles[nI] 
   AAdd(aZip,cDbf) 
   CursorWait() 
NEXT nI 

aFiles:=Array(ADir(cPath+'*.DBT')) 
nFiles:=aDir(cPath+'*.DBT',aFiles)
FOR nI=1 TO nFiles 
   cDbf:=cPath+aFiles[nI] 
   AAdd(aZip,cDbf) 
   CursorWait() 
NEXT nI 

aFiles:=Array(ADir(cPath+'*.FTP')) 
nFiles:=aDir(cPath+'*.FTP',aFiles) 
FOR nI=1 TO nFiles 
   cDbf:=cPath+aFiles[nI] 
   AAdd(aZip,cDbf) 
   CursorWait() 
NEXT nI 

nLen := len(aZip)

DEFINE DIALOG oDlg FROM 1, 1 TO 10, 44 TITLE 'GUARDANDO INFORMACION ...' 

@ 2, 2 METER oMeter VAR nActual TOTAL 100 OF oDlg SIZE 135, 12 

ACTIVATE DIALOG oDlg CENTERED; 
  on Paint( If( Hb_ZIPFILE(mUBI_DES+cFile,aZip,,{|cFile,nPos|nActual:=nPos/nLen*100,oMeter:Set(nActual)} ),; 
                    MsgInfo('Carpeta de Origen: '+cPath+chr(13)+;
                            'Carpeta de Destino: '+mUBI_DES+chr(13)+;
                            'Archivo/s Guardados en: '+cFile+chr(13)+;
                            'Cantidad de Archivos Guardados: '+str(nLen,3) ,'Información General del Proceso'),; 
                    MsgInfo('La copia no se puede realizar')),;
            oDlg:End()) 

return .t.

*----------------------------------------------------------- RECUPERAR INFORMACION
Function Backup2(cPath , mUBI_ORI , cFile)

local aFiles

If !file(cFile)

  MsgInfo('Archivo Inexistente')
  return .t.

EndIf

aFiles:=HB_GetFilesInZip(cFile) 

HB_UnZipFile(cFile,,.T.,,cPath,aFiles,NIL) 

MsgInfo('Carpeta de Origen: '+mUBI_ORI+chr(13)+;
        'Carpeta de Destino: '+cPath+chr(13)+;
        'Archivo/s Recuperados de: '+cFile+chr(13)+;
        'Cantidad de Archivos Recuperados: '+str(Len(aFiles),3) ,'Información General del Proceso')

return .t.
dobfivewin
Posts: 325
Joined: Sun Feb 03, 2008 11:04 pm
Location: Argetnina

Post by dobfivewin »

Actualizando mi programa de Backup con ZIP (Es simple) :wink:

Espero que sea Útil :!: ...

Saludos para todos

David
Argentina :lol:

Code: Select all

* Incluir HBZIP.LIB

static mUBI_ORI
static mUBI_DES
static mNOMARCHIVO

Function BackupZIP()

local oDlgCar , oFont1

dbcloseall()

DEFINE FONT oFont1 NAME 'Arial' SIZE 0,-15 BOLD

DEFINE DIALOG oDlgCar FROM 0, 0 TO 12, 40 ;
              TITLE 'GUARDAR / RECUPERAR INFORMACION'

   @ 1, 8 BUTTON 'Guardar Informacion'  OF oDlgCar SIZE 60, 12 ;
  		           ACTION ( ArmarBackup(1) )

   @ 2, 8 BUTTON 'Recuperar Informacion'  OF oDlgCar SIZE 60, 12 ;
			           ACTION ( ArmarBackup(2) )
  
   @ 3, 8 BUTTON 'Salir' OF oDlgCar SIZE 60, 12 ;
	               ACTION ( oDlgCar:End() )

ACTIVATE DIALOG oDlgCar CENTERED

dbcloseall()
return .t.

*-----------------------------------------------------------------------------
Function ArmarBackup(Arma1Extrae2)

local oDlgCar 
local oFont1

local oUBI_ORI , oUBI_DES , oNOMARCHIVO
local xUBI_ORI:=CurDrive()+':\'+CurDir()+'\'

mUBI_ORI:=xUBI_ORI+SPACE(60-LEN(xUBI_ORI))
mUBI_DES:=xUBI_ORI+SPACE(60-LEN(xUBI_ORI))
mNOMARCHIVO:=SPACE(20) 

dbcloseall()

DEFINE FONT oFont1 NAME 'Arial' SIZE 0,-9 //BOLD

DEFINE DIALOG oDlgCar FROM 0, 0 TO 15, 80 ;
              TITLE If(Arma1Extrae2==1,'GUARDAR','RECUPERAR')+' INFORMACION'

   @ 1.750, 1 SAY 'Carpeta de Origen' of oDlgCar

   @ 1.500, 9 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                     ACTION( mUBI_ORI:=DIRECMain() ,;
                             mUBI_ORI:=alltrim(mUBI_ORI)+'\' ,;
                             mUBI_ORI:=mUBI_ORI+space(60-len(mUBI_ORI)) ,;
                             oUBI_ORI:refresh() )

   @     2,10 GET oUBI_ORI var mUBI_ORI of oDlgCar


   @ 2.625, 1 SAY 'Carpeta de Destino' of oDlgCar

   @ 2.250, 9 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                     ACTION( mUBI_DES:=DIRECMain() ,;
                             mUBI_DES:=alltrim(mUBI_DES)+'\' ,;
                             mUBI_DES:=mUBI_DES+space(60-len(mUBI_DES)) ,;
                             oUBI_DES:refresh() )

   @     3,10 GET oUBI_DES var mUBI_DES of oDlgCar


   @ 3.500, 1 SAY 'Archivo ZIP' of oDlgCar

   If Arma1Extrae2 == 2
     @ 2.950, 9 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                       ACTION( mNOMARCHIVO := cGetFile32( 'ZIP  (*.zip)| *.zip|' + 'Seleccione un archivo de ZIP',3) ,;
                               oNOMARCHIVO:refresh() )
   EndIf

   @     4,10 GET oNOMARCHIVO var mNOMARCHIVO of oDlgCar

   If Arma1Extrae2 == 1
     @ 4.3, 10 BUTTON 'Guardar Informacion'  OF oDlgCar SIZE 60, 10 ;
	  		            ACTION ( Backup1(alltrim(mNOMARCHIVO),alltrim(mUBI_ORI),alltrim(mUBI_DES)) ,;
		  	                    oDlgCar:End() )
   Else
     @ 4.3, 10 BUTTON 'Extraer Informacion'  OF oDlgCar SIZE 60, 10 ;
	  		            ACTION ( Backup2(alltrim(mUBI_DES),alltrim(mUBI_ORI),alltrim(mNOMARCHIVO)) ,;
		  	                    oDlgCar:End() )
   EndIf


   @ 4.3, 30 BUTTON 'Salir' OF oDlgCar SIZE 60, 10 ;
	               ACTION ( oDlgCar:End() )

ACTIVATE DIALOG oDlgCar CENTERED

dbcloseall()
return .t.

*-----------------------------------------------------------  GUARDAR INFORMACION
Function Backup1(cFile,cPath,mUBI_DES,cPass)

local aFiles , nI , aZip:={} , nFiles , cDbf 
local oMeter , nActual , oDlg , nLen

If FILE(mUBI_DES+cFile+'.zip') .and. !MsgNoYes(oemtoansi('Archivo Existente, desea Reemplezar ?'),;
                                oemtoansi('Elija opcion SI/NO') )
  return .t.

EndIf

If FILE(cFile+'.zip')
  FErase(cFile+'.zip') 
EndIf

aFiles:=Array(ADir(cPath+'*.DBF')) 
nFiles:=aDir(cPath+'*.DBF',aFiles) 
FOR nI=1 TO nFiles 
   cDbf:=cPath+aFiles[nI] 
   AAdd(aZip,cDbf) 
   CursorWait() 
NEXT nI 

aFiles:=Array(ADir(cPath+'*.DBT')) 
nFiles:=aDir(cPath+'*.DBT',aFiles)
FOR nI=1 TO nFiles 
   cDbf:=cPath+aFiles[nI] 
   AAdd(aZip,cDbf) 
   CursorWait() 
NEXT nI 

aFiles:=Array(ADir(cPath+'*.FTP')) 
nFiles:=aDir(cPath+'*.FTP',aFiles) 
FOR nI=1 TO nFiles 
   cDbf:=cPath+aFiles[nI] 
   AAdd(aZip,cDbf) 
   CursorWait() 
NEXT nI 

nLen := len(aZip)

DEFINE DIALOG oDlg FROM 1, 1 TO 10, 44 TITLE 'GUARDANDO INFORMACION ...' 

@ 2, 2 METER oMeter VAR nActual TOTAL 100 OF oDlg SIZE 135, 12 

ACTIVATE DIALOG oDlg CENTERED; 
  on Paint( If( Hb_ZIPFILE(mUBI_DES+cFile,aZip,,{|cFile,nPos|nActual:=nPos/nLen*100,oMeter:Set(nActual)} ),; 
                    MsgInfo('Carpeta de Origen: '+cPath+chr(13)+;
                            'Carpeta de Destino: '+mUBI_DES+chr(13)+;
                            'Archivo/s Guardados en: '+cFile+chr(13)+;
                            'Cantidad de Archivos Guardados: '+str(nLen,3) ,'Información General del Proceso'),; 
                    MsgInfo('La copia no se puede realizar')),;
            oDlg:End()) 

*FOR nI=1 TO Len(aZip) 
*   CursorWait() 
*   HB_ZipFile(mUBI_DES+cFile,aZip[nI],,,,,.F.)    
*NEXT nI 

return .t.

*----------------------------------------------------------- RECUPERAR INFORMACION
Function Backup2(cPath , mUBI_ORI , cFile)

local aFiles , nRow:=0 
local oMeter , nActual , oDlg , nLen , nPos:=0

If !file(cFile)
  MsgInfo('Archivo '+cFile+' Inexistente')
  return .t.
EndIf

aFiles:=HB_GetFilesInZip(cFile) 

nLen := len(aFiles)

DEFINE DIALOG oDlg FROM 1, 1 TO 10, 44 TITLE 'RECUPERANDO INFORMACION ...' 

@ 2, 2 METER oMeter VAR nActual TOTAL 100 OF oDlg SIZE 135, 12 

ACTIVATE DIALOG oDlg CENTERED; 
  on Paint( If( HB_UnZipFile(cFile,{|| oMeter:Set(++nPos/nLen*100), SYSREFRESH() },.T.,,cPath,aFiles,NIL) ,; 
                    MsgInfo('Carpeta de Origen: '+mUBI_ORI+chr(13)+;
                    'Carpeta de Destino: '+cPath+chr(13)+;
                    'Archivo/s Recuperados de: '+cFile+chr(13)+;
                    'Cantidad de Archivos Recuperados: '+str(Len(aFiles),3) ,'Información General del Proceso'),; 
                    MsgInfo('La copia no se puede realizar')),;
            oDlg:End()) 

*HB_UnZipFile(cFile,,.T.,,cPath,aFiles,NIL) 

*MsgInfo('Carpeta de Origen: '+mUBI_ORI+chr(13)+;
*        'Carpeta de Destino: '+cPath+chr(13)+;
*        'Archivo/s Recuperados de: '+cFile+chr(13)+;
*        'Cantidad de Archivos Recuperados: '+str(Len(aFiles),3) ,'Información General del Proceso')

return .t.
fergonm
Posts: 133
Joined: Fri Nov 30, 2007 11:34 am
Location: Zaragoza (España)

Re: Realizar Backup o copias de Seguridad desde FW

Post by fergonm »

Buenos días.
Necesitaría descargar la librería HbZip y no la encuentro.
Un saludo y muchas gracias.
Saludos. Fernando
fergonm
Posts: 133
Joined: Fri Nov 30, 2007 11:34 am
Location: Zaragoza (España)

Re: Realizar Backup o copias de Seguridad desde FW

Post by fergonm »

¿Alguien me puede indicar donde descargar hbzip para harbour?

Un saludo
Saludos. Fernando
User avatar
QAZWSX2K
Posts: 359
Joined: Tue Oct 25, 2005 7:06 pm
Location: Bogota - Caracas

Re: Realizar Backup o copias de Seguridad desde FW

Post by QAZWSX2K »

solo agrega la mencion a ella, debe estar en la carpeta de tu xharbour\lib\hbzip.lib
Software especializado para oficinas contables con grandes volumenes de Informacion
Impresion de todos los formularios del Seniat, Dian

alex_patino74@hotmail.com
whatsapp 57+3214777217
fergonm
Posts: 133
Joined: Fri Nov 30, 2007 11:34 am
Location: Zaragoza (España)

Re: Realizar Backup o copias de Seguridad desde FW

Post by fergonm »

Ya lo he intentado, pero no está la librería en harbour y da error al compilar.

Un saludo
Saludos. Fernando
Post Reply