In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Utilizar el zip

Foro público de Xailer en español
Responder
PILO
Mensajes: 583
Registrado: Vie Jul 06, 2007 5:18 pm

Utilizar el zip

Mensaje por PILO »

Hay alguien que tenga algún pequeño ejemplo de
utilizar las clase de zip y unzip
Gracias de antemano.
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Utilizar el zip

Mensaje 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
PILO
Mensajes: 583
Registrado: Vie Jul 06, 2007 5:18 pm

Utilizar el zip

Mensaje 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
>
Responder