Backup c/ ZIP Xharbour 1.0
Enviado: 16 Mar 2008 17:54
Como faço um bom programa de backup no xHarbour 1.0 que compacte bem os arquivos.
Código: Selecionar todos
* HB_ZIPFILE( <cFile>, <cFileToCompress> | <aFiles>, <nLevel>,
* <bBlock>, <lOverWrite>, <cPassword>, <lWithPath>, <lWithDrive>,<cBlock>)
*
* HB_UNZIPFILE( <cFile>, <bBlock>, <lWithPath>, <cPassWord>, <cPath>,
* <cFile> | <aFile>, <pFileProgress> ) ---> lCompress
*
* Parametros.
* 1 - Arquivo zip que será criado
* 2 - Array com os nomes dos arquivos a serem criados
* 3 - Nivel de compressão
* 4 - Bloco para usar uma barra de progressão mostrando o progresso total
* 5 - Se vai sobrescrever arquivos existentes no ZIP
* 6 - Senha para abrir o arquivo
* 7 - .T. ou .F. se vai preservar os diretorios originais
* 8 - .T. ou .F. se vai preserver a unidade original
* 9 - Bloco para usar uma barra de prograssão mostrando o progresso do arquivo atual.
* Isto para gerar o zip, existem outras rotinas, veja no arquivo zipnews.txt na pasta DOC\EN do
* xHarbour que ensina o uso de todas as rotinas.
* Wagner Nunes
FUNCTION MAIN()
aFiles := {"Arq_data.dbf","arquni.dbf","setup.dbf","setup1.dbf","exares.dbf"}
cFile1 := "TestDest1.zip" && ou "TestDest"
cFile2 := "TestDest2"
cFileToCompress := "paciente.dbf"
clear
@ 10,10 say "Comprimindo o primeiro arquivo"
HB_ZIPFILE( cFile1, cFileToCompress )
@ 12,10 say "Comprimindo o segundo arquivo"
public nPos, nTotal
SETCOLOR("N/BG")
@ 19,09 say space(65)
@ 20,09 say space(65)
@ 21,09 say space(65)
SETCOLOR("R/N")
HB_ZIPFILE( cFile2, aFiles, , , .T., , .T., , {|nPos,nTotal| GaugeUpdate({1},(nPos/nTotal))} )
RETURN(.T.)
*
*
FUNCTION GaugeUpdate( aG , nn )
@ 16,10 SAY "NN"
?? NN * 100
N1 := NN*60
ccc := REPL(CHR(219),INT( N1 )) + SPACE(60-N1)
@ 20,10 SAY ccc
?
? nn * 100
RETURN(.T.)