Busca de Unidades no Computador

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Busca de Unidades no Computador

Mensagem 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.

Código: Selecionar todos

Run PZIP.EXE -R -P ARQUIVO.ZIP *.DBF *.FPT *.CDX
Mas obrigado, Toledo, pq eu realmente aprendi muitas coisas, fazendo esses testes todos...

Gabriel
lugab
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Busca de Unidades no Computador

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Busca de Unidades no Computador

Mensagem 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 ?
lugab
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Busca de Unidades no Computador

Mensagem por Toledo »

Gabriel, ta explicado então... eu to testando com o Harbour 2.1.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Busca de Unidades no Computador

Mensagem 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
lugab
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Busca de Unidades no Computador

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: Busca de Unidades no Computador

Mensagem 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
lugab
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Re: Busca de Unidades no Computador

Mensagem 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...
:{
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Busca de Unidades no Computador

Mensagem 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
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Busca de Unidades no Computador

Mensagem 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

Código: Selecionar todos

hbziparc.hbc
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
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Busca de Unidades no Computador

Mensagem por Vlademiro »

Finalmente o meu problema foi resolvido tb. Obrigado a todos!

:D
Responder