Página 2 de 2
Re: Busca de Unidades no Computador
Enviado: 15 Fev 2011 17:25
por lugab
Não funciona não, Toledo, inclusive essa sintaxe abaixo provoca um erro em tempo de execução, e o windows até abre a tela que reporta erros.
Código: Selecionar todos
aDir1 := {"*.DBF","*.FPT","*.CDX"}
if !hb_zipfile( vNome_zip1,aDir1, 9, ,.T., "senha",.T.,.T,)
Alert("Backup 1 nao foi concluido, verifique !!!")
endif
É que a LIB exige que seja colocado todo o caminho dos arquivos a serem zipados, ou seja, Tem que informar -> c:\sistemas\db\*.dbf
_________________________________________________________________________
Estou convencido que essa lib é super modesta , híper limitada e cheia de erros, dentre os quais esse descoberto e relatado pelo Toledo..
- A lib não oferece recurso de incluir tb os arquivos de sub-pastas (apesar de os 2 .T. do final do comando Lib_zipfile() existirem visando este fim)
- A lib ignora e não zipa quando há mais de um tipo de arquivo a ser zipado , ex: *.dbf + *.fpt + *.cdx , etc, em um mesmo arquivo final
Então, o jeito é eu continuar me virando dando RUN no zipador de 16 bits (pkzip.exe) , já q ainda não achei um outro executável que faça as mesmas tarefas do PKZIP.EXE mas que seja compilado em 32 bits.
Mas obrigado, Toledo, pq eu realmente aprendi muitas coisas, fazendo esses testes todos...
Gabriel
Re: Busca de Unidades no Computador
Enviado: 15 Fev 2011 20:04
por Toledo
Gabriel, faça um teste com este código:
Código: Selecionar todos
FUNC MAIN()
LOCAL cNomeArquivoZip:="backup.zip",;
cSenhaZip:="qwert",;
cArquivos:={"*.DBF","*.FPT","*.CDX"}
BackZip(cNomeArquivoZip,cSenhaZip,cArquivos)
RETU NIL
PROC BackZip(cNomeZip,cSenha,aNomeArq)
LOCAL hZip, aDir, aFile, cPath, cFileName, cExt, cArq
HB_FNameSplit( cNomeZip, @cPath, @cFileName, @cExt )
IF EMPTY( cExt )
cExt := ".zip"
ENDIF
cNomeZip := HB_FNameMerge( cPath, cFileName, cExt )
IF hb_isString( aNomeArq )
aNomeArq := { aNomeArq }
ENDIF
hZip := HB_ZIPOPEN( cNomeZip )
IF !EMPTY( hZip )
FOR EACH cArq IN aNomeArq
IF !EMPTY( cArq )
HB_FNameSplit( cArq, @cPath, @cFileName, @cExt )
aDir := HB_DirScan( cPath, cFileName + cExt )
FOR EACH aFile IN aDir
IF ! cPath + aFile[ 1 ] == cNomeZip
HB_ZipStoreFile( hZip, cPath + aFile[ 1 ], cPath + aFile[ 1 ], cSenha )
ENDIF
NEXT
ENDIF
NEXT
HB_ZIPCLOSE( hZip )
ENDIF
RETURN
No nome dos arquivos, caso seja necessário, você pode informar também o caminho.
Abraços,
Re: Busca de Unidades no Computador
Enviado: 15 Fev 2011 21:10
por lugab
Que doideira, Toledo...
To usando Xharbour 1.000 e HBZip.lib , além de outras Libs padrão, normalmente usadas em todas aplicações e as funções abaixo não estão dentro de nenhuma delas..
Hb-ZipOpen()
Hb_DirScan()
Hb_ZipStoreFile()
Hb_ZipClose()
Por acaso vc sabe qual lib tem essas funções no xharbour 1.00 ?
Re: Busca de Unidades no Computador
Enviado: 15 Fev 2011 21:23
por Toledo
Gabriel, ta explicado então... eu to testando com o Harbour 2.1.
Abraços,
Re: Busca de Unidades no Computador
Enviado: 15 Fev 2011 21:44
por lugab
Ah era isso Toledo ! kkk, então agora vai !
Na verdade eu vinha seguindo o ttópico desde o início, testando os exemplos que ainda eram com xharbour..
Então eu vou baixar um harbour igual o seu e já-já eu te dou um retorno...
E muito obrigado por todo esse tempo dispensado, Toledo.
Babriel
Re: Busca de Unidades no Computador
Enviado: 15 Fev 2011 22:32
por Toledo
Gabriel, segue abaixo o link do Harbour Nightly:
http://sourceforge.net/projects/harbour ... s/nightly/
O exemplo que passei, usei as libs: hbziparc, hbmzip e minizip.
Abraços,
Re: Busca de Unidades no Computador
Enviado: 15 Fev 2011 22:54
por lugab
Pronto, Toledo, testei com o harbour 2.0 e ficou supimpa..
Ele roda rapidinho numa base média de dados, bem melhor que o poróprio pkzip.exe
E pensar que eu já tava jogando a toalha hein ? Aprendi a lição..
Recomendo aos colegas usarem esse pequeno código acima pra zipar seus dados e finalmente poder rodar seus aplicativos tb no windows 64 nits..
No mais é te agradecer mais uma vez, Toledo, e dizer q foi esse seu fórum q viabilizou o trabalho e o emprego de dezenas de clipeiros q estavam desnorteados.
Grato,
gabriel
Re: Busca de Unidades no Computador
Enviado: 04 Mai 2011 01:24
por fladimir
Pessoal desculpe minha ignorancia, mas não consegui rodar nada, uso o Harbour 2.1.xxx e pra ser sincero não sei a diferença entre as libs:
HBZLIB
HBMZIP
HBZIPARC
se linko meu prg de exemplo com elas individualizadas ou juntas ou aos pares fala q falta no mínimo as funções
Hb-ZipOpen()
Hb_ZipStoreFile()
Hb_ZipClose()
ou ainda
HB_ZipFile()
Exemplos de Codigos q tentei compilar:
Código: Selecionar todos
/*
* $Id: zipa.prg 14088 2010-03-07 14:19:03Z vszakats $
*/
PROCEDURE Main( cZip, ... )
LOCAL a, b, c
SET DATE TO ANSI
SET CENTURY ON
? hb_ZipFile( cZip, hb_AParams() )
a := hb_GetFilesInZip( cZip, .T. )
FOR EACH b IN a
?
FOR EACH c IN b
?? c, ""
NEXT
NEXT
RETURN
Código: Selecionar todos
FUNC MAIN()
LOCAL cNomeArquivoZip:="backup.zip",;
cSenhaZip:="qwert",;
cArquivos:={"*.DBF","*.FPT","*.CDX"}
BackZip(cNomeArquivoZip,cSenhaZip,cArquivos)
RETU NIL
PROC BackZip(cNomeZip,cSenha,aNomeArq)
LOCAL hZip, aDir, aFile, cPath, cFileName, cExt, cArq
HB_FNameSplit( cNomeZip, @cPath, @cFileName, @cExt )
IF EMPTY( cExt )
cExt := ".zip"
ENDIF
cNomeZip := HB_FNameMerge( cPath, cFileName, cExt )
IF hb_isString( aNomeArq )
aNomeArq := { aNomeArq }
ENDIF
hZip := HB_ZIPOPEN( cNomeZip )
IF !EMPTY( hZip )
FOR EACH cArq IN aNomeArq
IF !EMPTY( cArq )
HB_FNameSplit( cArq, @cPath, @cFileName, @cExt )
aDir := HB_DirScan( cPath, cFileName + cExt )
FOR EACH aFile IN aDir
IF ! cPath + aFile[ 1 ] == cNomeZip
HB_ZipStoreFile( hZip, cPath + aFile[ 1 ], cPath + aFile[ 1 ], cSenha )
ENDIF
NEXT
ENDIF
NEXT
HB_ZIPCLOSE( hZip )
ENDIF
RETU
e o pior é q se compilo dentro da pasta contrib\ziparc\tests\zipa.prg sem informar nenhuma lib tipo somente hbmk2 zipa.prg gera o executavel sem reclamar a função hb_zipFile() não sei entendo pq, acredito q é algo relacionado aos .hbp .hbm .hpp da vida q tem lá e na pasta anterior.
Alguém pode ajudar ?
Talvez devesse criar um novo tópico na sessão Harbour se algum moderador assim achar necessário...
:{
Busca de Unidades no Computador
Enviado: 19 Nov 2011 00:45
por Pablo César
preciso criar uma rotina de BackUp simples, para copia em penDrive. Só que o penDrive, uma hora é G:, outra é F:, desta forma não da para fezer um arquivo.bat para executar.
Agora tem uma rotina disponível na seção de Downloads:
clique aqui pra baixá-lo
Busca de Unidades no Computador
Enviado: 16 Jun 2012 08:31
por Jairo Maia
Olá Fladimir,
Faz mais de um ano seu post acima, mas diga-me se você conseguiu resolver o problema e compilar estas funções agregadas ao seu sistema.
Pergunto porque esta semana e com a ajuda deste tópico, consegui me livrar dos "Velhos, Bons e Guerreiros" PKZIP e PKUNZIP, e sem a necessidade de usar qualquer aplicativo externo para backup e restauração.
Enfrentei também o problema que você citou, e foi resolvido colocando na pasta de cada projeto os seguintes arquivos: HBMK.HBM e HBZIPARC.HBC
Conteúdo do arquivo: hbmk.hbm
E o arquivo: hbziparc.hbc ( cópia fiel da pasta HB30\CONTRIB\HBZIPARC )
Código: Selecionar todos
#
# $Id: hbziparc.hbc 16259 2011-02-09 15:58:45Z vszakats $
#
libs=${_HB_DYNPREF}${hb_name}${_HB_DYNSUFF}
libs=../hbmzip/hbmzip.hbc
Busca de Unidades no Computador
Enviado: 06 Dez 2015 12:52
por Vlademiro
Finalmente o meu problema foi resolvido tb. Obrigado a todos!
