Página 1 de 1

Utilizar el zip

Publicado: Dom May 13, 2007 8:59 pm
por PILO
Hay alguien que tenga algún pequeño ejemplo de
utilizar las clase de zip y unzip
Gracias de antemano.

Utilizar el zip

Publicado: Lun May 14, 2007 9:28 am
por Bingen Ugaldebere
Un ejemplo de ZIP
***************************************************
* COPIA A ZIP DE ARCHIVOS DE DATOS DEL PROGRAMA *
***************************************************
// El nombre se compone de 4 cifras del año, 2 del mes, 2 del dia
// y un nº secuencial de 2 cifras
// Graba un máximo de ZIP 10 por defecto, borrando los mas antiguos
Function CopyDataZip(nNumZips,cMessage,cBackupFolder)
Local oZip, aZipFiles:=Array(0), aZips:=Array(0), nZip:=0
LOCAL cName:=DTOS(DATE())+"-"+"01", hWnd
DEFAULT nNumZips To AppData:nAutoBackNr
DEFAULT cMessage To If(AppData:cOriginalLng<>"ESP",;
"Creando Copia Rápida de datos del
programa a archivo",;
"Creating Fast Copy of program's datas to
file")
DEFAULT cBackupFolder To AppData:cDataBackup
//Create BACKUP path If necessary
If !ExistDir( cBackupFolder )
MakeDir( cBackupFolder )
If !AppData:lUser
MsgInfo(If(AppData:cOriginalLng<>"ESP",;
"Created backup folder ","Se ha creado la carpeta
de backup ")+;
cBackupFolder)
Endif
Endif
//Look if there is another ZIP of the day and generate a secuential
number
Do While File(cBackupFolder+cName+".ZIP")
cName:=Left(cName,9)+Alltrim(StrZero(Val(Substr(cName,10,2)) +1,2))
EndDo
cName:=cBackupFolder+cName+".Zip"
WaitOn(cMessage+CRLF+cBackupFolder+cName+".Zip")
//Close all Child Window
If Application:oMainForm:nFormType = ftMDIFRAME
Application:oMainForm:oMdiClient:CloseAll()
Endif
//Find old ZIP and delete it if there are more than nNumZips
aZips:=DIRECTORY(cBackupFolder+"*.ZIP")
aZips:=ASORT(aZips,,, { |x, y| x[1] < y[1] })
FOR nZIP:=1 TO LEN(aZips)-nNumZips
Ferase(cBackupFolder+aZips[nZIP,1])
NEXT
Aadd( aZipFiles, AppData:cAppPath+"Fondo.Bmp" )
Aadd( aZipFiles, AppData:cAppPath+"*.DBT" )
Aadd( aZipFiles, AppData:cAppPath+"*.FPT" )
Aadd( aZipFiles, AppData:cAppPath+"*.DBF" )
//If data path is not equal to program path add to Zip
If AppData:cAppPath<>AppData:cDataPath
Aadd( aZipFiles, AppData:cDataPath+"Fondo.Bmp" )
Aadd( aZipFiles, AppData:cDataPath+"*.DBT" )
Aadd( aZipFiles, AppData:cDataPath+"*.FPT" )
Aadd( aZipFiles, AppData:cDataPath+"*.DBF" )
Endif
WITH OBJECT oZip := TZipFile()
:aFileMask := aZipFiles
:cFileName := cName
:lIncludePath := .T.
:nCompressionLevel:= pkBEST
:Run()
END
WaitOff()
Return Nil

Utilizar el zip

Publicado: Lun May 14, 2007 4:01 pm
por PILO
Gracias lo Mirare para ver como funciona
"Bingen Ugaldebere" <bingen@muninser.com> escribió en el mensaje
news:[email=46481003@ozsrv2.ozlan.local...]46481003@ozsrv2.ozlan.local...[/email]
> Un ejemplo de ZIP
>
> ***************************************************
> * COPIA A ZIP DE ARCHIVOS DE DATOS DEL PROGRAMA *
> ***************************************************
> // El nombre se compone de 4 cifras del año, 2 del mes, 2 del dia
> // y un nº secuencial de 2 cifras
> // Graba un máximo de ZIP 10 por defecto, borrando los mas antiguos
> Function CopyDataZip(nNumZips,cMessage,cBackupFolder)
> Local oZip, aZipFiles:=Array(0), aZips:=Array(0), nZip:=0
> LOCAL cName:=DTOS(DATE())+"-"+"01", hWnd
> DEFAULT nNumZips To AppData:nAutoBackNr
> DEFAULT cMessage To If(AppData:cOriginalLng<>"ESP",;
> "Creando Copia Rápida de datos del programa
> a archivo",;
> "Creating Fast Copy of program's datas to
> file")
> DEFAULT cBackupFolder To AppData:cDataBackup
>
> //Create BACKUP path If necessary
> If !ExistDir( cBackupFolder )
> MakeDir( cBackupFolder )
> If !AppData:lUser
> MsgInfo(If(AppData:cOriginalLng<>"ESP",;
> "Created backup folder ","Se ha creado la carpeta de
> backup ")+;
> cBackupFolder)
> Endif
> Endif
>
> //Look if there is another ZIP of the day and generate a secuential
> number
> Do While File(cBackupFolder+cName+".ZIP")
> cName:=Left(cName,9)+Alltrim(StrZero(Val(Substr(cName,10,2)) +1,2))
> EndDo
> cName:=cBackupFolder+cName+".Zip"
>
> WaitOn(cMessage+CRLF+cBackupFolder+cName+".Zip")
>
> //Close all Child Window
> If Application:oMainForm:nFormType = ftMDIFRAME
> Application:oMainForm:oMdiClient:CloseAll()
> Endif
>
> //Find old ZIP and delete it if there are more than nNumZips
> aZips:=DIRECTORY(cBackupFolder+"*.ZIP")
> aZips:=ASORT(aZips,,, { |x, y| x[1] < y[1] })
> FOR nZIP:=1 TO LEN(aZips)-nNumZips
> Ferase(cBackupFolder+aZips[nZIP,1])
> NEXT
>
> Aadd( aZipFiles, AppData:cAppPath+"Fondo.Bmp" )
> Aadd( aZipFiles, AppData:cAppPath+"*.DBT" )
> Aadd( aZipFiles, AppData:cAppPath+"*.FPT" )
> Aadd( aZipFiles, AppData:cAppPath+"*.DBF" )
> //If data path is not equal to program path add to Zip
> If AppData:cAppPath<>AppData:cDataPath
> Aadd( aZipFiles, AppData:cDataPath+"Fondo.Bmp" )
> Aadd( aZipFiles, AppData:cDataPath+"*.DBT" )
> Aadd( aZipFiles, AppData:cDataPath+"*.FPT" )
> Aadd( aZipFiles, AppData:cDataPath+"*.DBF" )
> Endif
>
> WITH OBJECT oZip := TZipFile()
> :aFileMask := aZipFiles
> :cFileName := cName
> :lIncludePath := .T.
> :nCompressionLevel:= pkBEST
> :Run()
> END
>
> WaitOff()
>
> Return Nil
>