Realizar Backup o copias de Seguridad desde FW
-
- Posts: 325
- Joined: Sun Feb 03, 2008 11:04 pm
- Location: Argetnina
Realizar Backup o copias de Seguridad desde FW
Estimados...
Que rutinas hay para generar backup ZIP,
Estoy tratando de usar HB_ZipFile y no me funciona, conseguí la Libreria y no me dá ningun error de compilación ni de ejecución, pero NO me generar nada.
Que otras opciones con FW tengo?
muchas gracias
david
argentina
Que rutinas hay para generar backup ZIP,
Estoy tratando de usar HB_ZipFile y no me funciona, conseguí la Libreria y no me dá ningun error de compilación ni de ejecución, pero NO me generar nada.
Que otras opciones con FW tengo?
muchas gracias
david
argentina
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
Re: Realizar Backup o copias de Seguridad desde FW
Aunque estoy de acuerdo con Carlos Mora (yo personalmente uso la utilidad del propio xHarbour), tienes otra opción gratuita que funciona bastante bien: EASYBACKUP. La puedes obtener en www.reportdesigner.infodobfivewin wrote:Que otras opciones con FW tengo?
Es facilmente configurable.
Un saludo
Manuel
Manuel
Re: Realizar Backup o copias de Seguridad desde FW
Siempre estoy viendo por todos lados ZIP, ZIP, ZIP, ....dobfivewin wrote:Estimados...
Que rutinas hay para generar backup ZIP,
Estoy tratando de usar HB_ZipFile y no me funciona, conseguí la Libreria y no me dá ningun error de compilación ni de ejecución, pero NO me generar nada.
Que otras opciones con FW tengo?
muchas gracias
david
argentina
Que se gana con usar ZIP (aparte de ahorrar espacio y dejar un solo fichero)? Que ventajas me proporciona?
Un familiar mio tiene la puñetera manía de usar ZIP (o el compresor que esté de moda). Yo sigo con el COPY. Y la verdad, NUNCA he estado preocupado en como lo voy a recuperar si se da el caso.
Sé que en cualquier PC podré recuperar la copia (DOS y Windows claro).
Y por cierto, nunca falla, y es compatible con las versiones anteriores, de unos ..... 20 años atras quizás.
En fin no puedo ayudarte, debo ser un bicho raro.
Saludos
Carlos G.
- Alfredo Arteaga
- Posts: 326
- Joined: Sun Oct 09, 2005 5:22 pm
- Location: Mexico
- Contact:
He incorporado un paso para que mis clientes puedan comprimir la información y me la envíen por correo, para casos de soporte.
Uso esto:
A ellos tambien les resulta muy útil, toda vez que sus propios clientes puedes estar a cientos o miles de kilómetros de distancia y el envio de este tipo de archivos resulta eficiente.
Uso esto:
Code: Select all
// Comprimir archivos (en ZIP)
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
FOR nI=1 TO Len(aZip)
CursorWait()
HB_ZipFile(cFile,aZip[nI],,,,,.F.)
NEXT nI
// Extraer archivos
aFiles:=HB_GetFilesInZip(cFile)
HB_UnZipFile(cFile,,.T.,,cPath,aFiles,NIL)
-
- Posts: 325
- Joined: Sun Feb 03, 2008 11:04 pm
- Location: Argetnina
Estimados
Muchas gracias por su respuesta...
Alfredo tome tu ejemplo y solucioné en parte. En cuando al armado del ZIP andubo perfecto.
Pero la extracción no tuve suerte
la consulta que coloco en: cFile,cPath
Entiendo que cFile es el lugar donde se encuentra el ZIP y cPath es donde tengo que colocar la extracción de archivos ?
nuevamente gracias
Ya que estamos... como es la funcion para que me de la carpeta de ubicacion actual
david
argentina
Muchas gracias por su respuesta...
Alfredo tome tu ejemplo y solucioné en parte. En cuando al armado del ZIP andubo perfecto.
Pero la extracción no tuve suerte
Code: Select all
aFiles:=HB_GetFilesInZip(cFile)
HB_UnZipFile(cFile,,.T.,,cPath,aFiles,NIL)
la consulta que coloco en: cFile,cPath
Entiendo que cFile es el lugar donde se encuentra el ZIP y cPath es donde tengo que colocar la extracción de archivos ?
nuevamente gracias
Ya que estamos... como es la funcion para que me de la carpeta de ubicacion actual
david
argentina
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Lo mejor que he visto en backup con fivewin y hbzip es xBLite
Un sistema de respaldo de directorios y subdirectorios seleccionados facilmente y permite restaurar también los datos.
Francamente, no se quien lo desarrolló originalmente... pero es gratuito y open source (los fuentes están completos)
Originalmente se desarrolló utilizando como browse SuperBrowse de Manuel Mercado, y mi buen amigo WMormar lo paso a xBrowse, para los que así lo prefieran.
Lo pueden hallar en:
xBLite Versión para SuperBrowse (M. Mercado)
http://www.box.net/shared/zovhrcoz3f
xBLite Versión modificada por WMormar para xBrowse
http://www.box.net/shared/v4ijq2olgq
Espero que les sean útiles y desde aquí mi gratitud a quienes participaron en el desarrollo de ambas versiones.
Un sistema de respaldo de directorios y subdirectorios seleccionados facilmente y permite restaurar también los datos.
Francamente, no se quien lo desarrolló originalmente... pero es gratuito y open source (los fuentes están completos)
Originalmente se desarrolló utilizando como browse SuperBrowse de Manuel Mercado, y mi buen amigo WMormar lo paso a xBrowse, para los que así lo prefieran.
Lo pueden hallar en:
xBLite Versión para SuperBrowse (M. Mercado)
http://www.box.net/shared/zovhrcoz3f
xBLite Versión modificada por WMormar para xBrowse
http://www.box.net/shared/v4ijq2olgq
Espero que les sean útiles y desde aquí mi gratitud a quienes participaron en el desarrollo de ambas versiones.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
- carlos vargas
- Posts: 1421
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
los desarrolladores originales de xBackupLite
Kleyber y un servidor, y ademas hay una version mejorada por karihna.
un saludo a aquellos que usan xBackupLite, el cual fue un aporte para todos mas que nada para demostrar el poder de fivewin y harbour.
salu2
Kleyber y un servidor, y ademas hay una version mejorada por karihna.
un saludo a aquellos que usan xBackupLite, el cual fue un aporte para todos mas que nada para demostrar el poder de fivewin y harbour.
salu2
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
Disponible en:carlos vargas wrote:los desarrolladores originales de xBackupLite
Kleyber y un servidor, y ademas hay una version mejorada por karihna.
un saludo a aquellos que usan xBackupLite, el cual fue un aporte para todos mas que nada para demostrar el poder de fivewin y harbour.
salu2
http://www.fivewin.com.br/exibedicas.asp?id=822
un gran saludo a mi querido amigo Carlos Vargas.
Saludos.
João Santos - São Paulo - Brasil
-
- Posts: 325
- Joined: Sun Feb 03, 2008 11:04 pm
- Location: Argetnina
Muchas gracias por vuestras respuestas
instalé y probé xBLite y me parece MUY BUENO opción .
Ahora estoy tratando de incorporar algo más simple y automático para que el usuario no tenga que hacer mucho....
es por eso que necesito saber:
Para la la extracción
Código:
la consulta que coloco en: cFile,cPath
Entiendo que cFile es el lugar donde se encuentra el ZIP y cPath es donde tengo que colocar la extracción de archivos ?
Ya que estamos... como es la funcion para que me de la carpeta de ubicacion actual
instalé y probé xBLite y me parece MUY BUENO opción .
Ahora estoy tratando de incorporar algo más simple y automático para que el usuario no tenga que hacer mucho....
es por eso que necesito saber:
Para la la extracción
Código:
Code: Select all
aFiles:=HB_GetFilesInZip(cFile)
HB_UnZipFile(cFile,,.T.,,cPath,aFiles,NIL)
Entiendo que cFile es el lugar donde se encuentra el ZIP y cPath es donde tengo que colocar la extracción de archivos ?
Ya que estamos... como es la funcion para que me de la carpeta de ubicacion actual
-
- Posts: 325
- Joined: Sun Feb 03, 2008 11:04 pm
- Location: Argetnina
Estimados
Gracias a Alfredo Arteaga logre hacer funcionar el armado de backup en ZIP
les dejo lo armado a modo de ejemplo...
Para empezar a hacer mejoras:
1) Como puedo incluir una barra de proceso en el armado del ZIP, como verán en la variable (Array) aZip tengo los archivos que van a ser incluido en el backup
2) para descomprimir un archivo, como puedo hacer para que el usuario pueda seleccionar un archivo
desde ya muchas gracias
david
argentina
Gracias a Alfredo Arteaga logre hacer funcionar el armado de backup en ZIP
les dejo lo armado a modo de ejemplo...
Code: Select all
#include 'dob.ini'
static mUBI_ORI
static mUBI_DES
static mNOMARCHIVO
Function BackupZIP()
local oDlgCar
local lSalir:= .f.
local oFont1
dbcloseall()
DEFINE FONT oFont1 NAME 'Arial' SIZE 0,-15 BOLD
DEFINE DIALOG oDlgCar FROM 0, 0 TO 12, 80 ;
TITLE 'BACKUP de INFORMACION'
@ 1, 8 BUTTON 'Armar Backup' OF oDlgCar SIZE 50, 12 ;
ACTION ( ArmarBackup(1) )
@ 2, 8 BUTTON 'Traer Backup' OF oDlgCar SIZE 50, 12 ;
ACTION ( ArmarBackup(2) )
@ 3, 8 BUTTON 'Salir' OF oDlgCar SIZE 50, 12 ;
ACTION ( oDlgCar:End() )
ACTIVATE DIALOG oDlgCar CENTERED
dbcloseall()
return .t.
*-----------------------------------------------------------------------------
Function ArmarBackup(Arma1Extrae2)
local oDlgCar
local lSalir:= .f.
local oFont1
local oUBI_ORI , oUBI_DES
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,'ARMA','EXTRAE`')+' BACKUP de INFORMACION'
@ 1.750, 1 SAY 'Carpeta de Origen' of oDlgCar
@ 1.500,10 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.300,10 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 'Nombre de Archivo ZIP' of oDlgCar
@ 4,10 GET mNOMARCHIVO of oDlgCar
If Arma1Extrae2 == 1
@ 4, 10 BUTTON 'Generar Backup' OF oDlgCar SIZE 50, 12 ;
ACTION ( Backup1(alltrim(mNOMARCHIVO),alltrim(mUBI_ORI),alltrim(mUBI_DES)) ,;
oDlgCar:End() )
Else
@ 4, 10 BUTTON 'Extraer Backup' OF oDlgCar SIZE 50, 12 ;
ACTION ( Backup2(alltrim(mUBI_DES),alltrim(mUBI_ORI),alltrim(mNOMARCHIVO)) ,;
oDlgCar:End() )
EndIf
@ 4, 20 BUTTON 'Salir' OF oDlgCar SIZE 50, 12 ;
ACTION ( oDlgCar:End() )
ACTIVATE DIALOG oDlgCar CENTERED
dbcloseall()
return .t.
*-----------------------------------------------------------
Function Backup1(cFile,cPath,mUBI_DES,cPass)
local aFiles , nI , aZip:={} , nFiles , cDbf
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
FOR nI=1 TO Len(aZip)
CursorWait()
HB_ZipFile(mUBI_DES+cFile,aZip[nI],,,,,.F.)
NEXT nI
MsgInfo('Carpeta de Origen: '+cPath+chr(13)+;
'Carpeta de Destino: '+mUBI_DES+chr(13)+;
'Archivo ZIP: '+cFile+chr(13)+;
'Cantidad de Archivo Guardados: '+str(Len(aZip),3) ,'Información General')
return .t.
*-----------------------------------------------------------
Function Backup2(cPath,mUBI_ORI,cFile)
local aFiles
If !FILE(cFile+'.zip')
MsgInfo('Archivo Inexistente','Archivo Inexistente')
return .t.
EndIf
aFiles:=HB_GetFilesInZip(cFile)
HB_UnZipFile(mUBI_ORI+cFile,,.T.,,cPath,aFiles,NIL)
return .t.
1) Como puedo incluir una barra de proceso en el armado del ZIP, como verán en la variable (Array) aZip tengo los archivos que van a ser incluido en el backup
2) para descomprimir un archivo, como puedo hacer para que el usuario pueda seleccionar un archivo
desde ya muchas gracias
david
argentina
-
- Posts: 325
- Joined: Sun Feb 03, 2008 11:04 pm
- Location: Argetnina
Actualizo mi simple programa de Guarda/Recuperar Informacion :
Para Mejorar:
Como puedo implementarle una barra de estado del proceso cuando valla armado o recuperando la Informacion (Meter?)
Para Mejorar:
Como puedo implementarle una barra de estado del proceso cuando valla armado o recuperando la Informacion (Meter?)
Code: Select all
#include 'dob.ini'
static mUBI_ORI
static mUBI_DES
static mNOMARCHIVO
Function BackupZIP()
local oDlgCar
local lSalir:= .f.
local 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 lSalir:= .f.
local oFont1
local oUBI_ORI , oUBI_DES
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','EXTRAER')+' 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
If Arma1Extrae2 == 1
@ 3.500, 1 SAY 'Nombre de Archivo ZIP' of oDlgCar
@ 4,10 GET mNOMARCHIVO of oDlgCar
@ 4, 10 BUTTON 'Guardar Informacion' OF oDlgCar SIZE 60, 12 ;
ACTION ( Backup1(alltrim(mNOMARCHIVO),alltrim(mUBI_ORI),alltrim(mUBI_DES)) ,;
oDlgCar:End() )
Else
@ 4, 10 BUTTON 'Extraer Informacion' OF oDlgCar SIZE 60, 12 ;
ACTION ( Backup2(alltrim(mUBI_DES),alltrim(mUBI_ORI),alltrim(mNOMARCHIVO)) ,;
oDlgCar:End() )
EndIf
@ 4, 30 BUTTON 'Salir' OF oDlgCar SIZE 60, 12 ;
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 oMeter2 , nRow:=1
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
FOR nI=1 TO Len(aZip)
CursorWait()
HB_ZipFile(mUBI_DES+cFile,aZip[nI],,,,,.F.)
NEXT nI
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(Len(aZip),3) ,'Información General del Proceso')
return .t.
*----------------------------------------------------------- RECUPERAR INFORMACION
Function Backup2(cPath,mUBI_ORI)
local aFiles
local cFile
cFile:= cGetFile32( "ZIP (*.zip)| *.zip|" +;
"Seleccione un archivo de ZIP",3)
msginfo(cFile)
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.