sambomb Posted October 29, 2008 Author Report Share Posted October 29, 2008 Eu tambem não entendi.... deve ser alguma coisa na minha maquina, sei la.... eu não compilei o programa(xBlite) portanto não pode ter sido alguma modificação acidental e eu não consigo extrair nenhum arquivo com ele.... Sempre da a mensagem de erro: citação:"Erro... Não Foi PossÃvel Recriar o Arquivo de Segurança..." id=quote>id=quote>Correspondente a linha 869 em xBlite.prg, que indica um .F. como resultado do HB_UnzipFile O mais estranho(ou nem tanto) é que consigo extrair com aplicativos "industrializados" (WinZip, WinRar) mas não consigo com os manufaturados(xBlite) e o meu.... MSN: samirabreu@hotmail.com Skype: SamirAbreu xHarbour 1.1.0 + FwXh 8.02 Quote Link to comment Share on other sites More sharing options...
Yury Posted October 29, 2008 Report Share Posted October 29, 2008 como vc tá usando uma classe sua, eu adaptei seu código para funcionar sem ela e testei aqui, tudo ok, descompactou beleza... //---------------------------------------------------------------------------------- FUNCTION MAIN() cARQZIP='C:\TEMP\MyZipFile.ZIP' IF Extrair({'ANDRE.TXT','B32.BC','BROWSER.DEF'},'C:\TESTE_ZIP\',.T.,cARQZIP) ? 'OK, DESCOMPACTADO COM SUCESSO !' ELSE ? 'OCORREU UM ERRO !' ENDIF RETURN //---------------------------------------------------------------------------------- //---------------------------------------------------------------------------------- FUNCTION Extrair(paFile,pcDestPath,lAvisa,cZipFile) local lExtrai:=.T., i:=0, cTipoFile:=ValType(paFile), cTipoDest:=ValType(pcDestPath) Local Result := .F. Default lAvisa := .F. //-- Verifica integridade do parâmetro paFileName if cTipoFile == "U" MsgALERT("Parâmetro de arquivos vazio") Return .F. elseif cTipoFile != "A" .and. cTipoFile != "C" MsgALERT("Parâmetro de arquivos inválido") Return .F. elseif cTipoFile == "C" paFile := {paFile} end //-- Verifica integridade do parâmetro pcDestPath if cTipoDest == "U" MsgALERT("Parâmetro de destino vazio") Return .F. elseif cTipoDest != "C" MsgALERT("Parâmetro de destino inválido") Return .F. end //-- Verifica se o destino indicado existe if !IsDirectory(pcDestPath) MsgALERT("Destino não existe") Return .F. end for i := 1 to Len(paFile) lExtrai := .T. //-- Se encontrar arquivo igual testa se o parâmetro foi indicado if lAvisa //-- Procura por arquivos iguais if file(alltrim(pcDestPath)+ALLTRIM(paFile)) //-- Se o parâmetro foi indicado pergunta se deseja sobreescrever if MSGYESNO("Arquivo "+paFile+" já encontrado, sobreescrever ?") lExtrai := .T. else lExtrai := .F. end end end //-- Testa se pode extrair ou não if lExtrai Result := HB_UNZIPFILE(cZipFile,,.T.,,pcDestPath,paFile) end end return Result //---------------------------------------------------------------------------------- id=code>id=code>Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 29, 2008 Author Report Share Posted October 29, 2008 citação:como vc tá usando uma classe sua, eu adaptei seu código para funcionar sem ela e testei aqui, tudo ok, descompactou beleza... Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say id=quote>id=quote>Então a dúvida é, o que pode estar fazendo isso? O que influenciaria tanto o xBlite quanto o meu programa? [Edit] Passa os parâmetros que você utilizou para ver se é algum parâmetro que eu to usando errado, mas acho que não é isso.... PS.: Testei o meu programa em outra máquina também e não funcionou.... [/Edit] MSN: samirabreu@hotmail.com Skype: SamirAbreu xHarbour 1.1.0 + FwXh 8.02 Editado por - sambomb on 29/10/2008 17:52:03 Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 30, 2008 Author Report Share Posted October 30, 2008 Modifiquei o código aqui para ficar mais simples de entender e segue o resultado.... deu CERTO!!!! mas o xBlite continua dando erro Acho que meu erro tava quando alimentava a função, tem a alteração em vermelho abaixo. **************************************************************************** static function Extrair() **************************************************************************** * * Abrir um zip * Parametros: * Retorno: * * Autor: Samir * 15/10/2008 - 17:24:34 * **************************************************************************** local Result := .F., aAux := {}, i := 0, cBuffer := "", nExtraidos := 0 Select TMPZIP dbsetorder(2) dbgotop() if dbseek("E") While !Eof() cBuffer := AllTrim(CAMINHO) cBuffer := cFileName(cBuffer)id=red> aAdd(aAux,cBuffer) dbskip() if STATUS != "E" exit end end end dbsetorder(1) IF Len(aAux) = 0 Msg("Nenhum arquivo selecionado para extração") Return Result end For i := 1 to Len(aAux) AtualizaProgresso(oProgresso,i,Len(aAux)) Result := oZip:Extrair(aAux,cGtBackup[3]) if Result nExtraidos++ end end if nExtraidos > 0 if nExtraidos++ != Len(aAux) Msg(Str(nExtraidos,,,.T.)+" arquivo(s) extraÃdo(s) com sucesso de "; Str( Len(aAux),,,.T.)+" arquivo(s) possÃveis") else Msg("Arquivo(s) extraÃdo(s) com sucesso!") end else Msg("Erro ao extrair o(s) arquivo(s)") end Zera() Return Result /*------------------------------------------------------------------------*/ **************************************************************************** METHOD Extrair(paFile,pcDestPath,lAvisa) CLASS TZIP **************************************************************************** * * Extrair arquivos de um ZIP pré existente * Parametros: * paFile = Array com os nomes dos arquivos a serem extraidos * OBS.: Também aceita caracter para o caso de apenas 1 arquivo * * pcDestPath = Caracter com o caminho completo do destino para extrair o arquivo * * lAvisa = Idenfica a necessidade de confirmação para sobreescrever * * Retorno: Lógico = .T. se conseguiu gravar, .F. se ocorreu algum erro * * Autor: Samir * 10/10/2008 - 15:17:35 * **************************************************************************** local lExtrai:=.T., i:=0, Result := .F., cNomeArquivo := ::cPath+::cNome Default lAvisa := .F. if !VerificaIntegridade(paFile,pcDestPath) Return Result end if ValType(paFile) == "C" paFile := {paFile} end for i := 1 to Len(paFile) if lAvisa lExtrai := CheckUnZip(pcDestPath,paFile) end //-- Testa se pode extrair ou não if lExtrai Result := HB_UNZIPFILE(cNomeArquivo ,/*bBlock*/, .T., ::cPass,; pcDestPath, paFile/*,pFileProgress*/) end end return Result /*------------------------------------------------------------------------*/ **************************************************************************** static function VerificaIntegridade(paFile,pcDestPath) **************************************************************************** * * Verificar a integridade dos parâmetros passados * Parametros: paFile,pcDestPath * Retorno: Lógico, .T. se estiver Ok * * Autor: Samir * 30/10/2008 - 09:06:35 * **************************************************************************** local cTipoFile:=ValType(paFile), cTipoDest:=ValType(pcDestPath) //-- Verifica integridade do parâmetro paFileName if cTipoFile == "U" Msg("Parâmetro de arquivos vazio") Return .F. elseif cTipoFile != "A" .and. cTipoFile != "C" Msg("Parâmetro de arquivos inválido") Return .F. end //-- Verifica integridade do parâmetro pcDestPath if cTipoDest == "U" Msg("Parâmetro de destino vazio") Return .F. elseif cTipoDest != "C" Msg("Parâmetro de destino inválido") Return .F. end //-- Verifica se o destino indicado existe if !IsDirectory(pcDestPath) Msg("Destino não existe") Return .F. end Return .T. /*------------------------------------------------------------------------*/ **************************************************************************** static function CheckUnZip(pcDestPath,pcNome) **************************************************************************** * * Procurar por arquivos com o mesmo nome dentro da pasta onde vai extrair * Parametros: pcDestPath = Destino de extração dos arquivos * pcNome = Nome do arquivo a sert extraido * Retorno: Lógico, .T. se encontrar, .F. se não encontrar * * Autor: Samir * 10/10/2008 - 16:33:32 * **************************************************************************** local Result := .T. if !File(pcDestPath+pcNome) Return .T. end if Result if SN("Arquivo "+paFile+" já encontrado, sobreescreve") Result := .T. else Result := .F. end end Return Result /*------------------------------------------------------------------------*/ id=code> id=code>Obrigado a todos que tiveram paciência, e especialmente ao Yuri que deu uma luz ao modificar a função MSN: samirabreu@hotmail.com Skype: SamirAbreu xHarbour 1.1.0 + FwXh 8.02 Quote Link to comment Share on other sites More sharing options...
Yury Posted October 30, 2008 Report Share Posted October 30, 2008 citação:Obrigado a todos que tiveram paciência, e especialmente ao Yuri que deu uma luz ao modificar a função id=quote>id=quote> abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted January 14, 2010 Report Share Posted January 14, 2010 citação: valeu!! Os devidos méritos a ele Mas... o que eu queria era a sintaxe,parametros e retornos... ja tinha baixado essa versão do XBLite e vi seu nome la por isso vim ver se vc tinha alguma documentação... algumas funções que ele usa para mim são desnecessarias e algumas não estão incluidas, como por exemplo senha... tenho as sintaxes apenas das funções: HB_ZIPFILE() //Create a zip file HB_UNZIPFILE() //Unzip a compressed file HB_GETUNZIPFILE() //Gets the number of files that are in the zipfile HB_ZIPFILEBYTDSPAN() //Create a zip file HB_ZIPFILEBYPKSPAN() //Create a zip file on removable media HB_SETDISKZIP() //Set an codeblock for disk changes HB_ZIPDELETEFILES() // Delete files from an zip archive HB_ZIPTESTPK() //Test pkSpanned zip files HB_GETZIPCOMMENT() //Return the comment of an zip file HB_SETZIPCOMMENT() //Set an Zip archive Comment HB_SETBUFFER() HB_GETUNRARFILE() //Gets the number of files that are in the RAR file HB_UNZIPFILEINDEX() //Unzip a compressed file referenced by it number in the zipfile samirabreu@hotmail.com xHarbour 1.1.0 + FwXh 8.02 Editado por - sambomb on 21/10/2008 14:44:44 id=quote>id=quote>Ola Samir , estava precisando da sintaxe do HB_UNZIPFILEINDEX() , vc conseguiu, tem link postado pelo Leonardo de um manual neste mesmo tópico mais o link não esta mais valido, tb não sei se la tem a sintaxe deste comando... Obrigado Luiz Fernando msn: empresoft@globo.com skype:empresoft empresoft@globo.com FWH 8.04,XHARBOUR 1.1,PELES,XDEV,VLIB,ADS 8.1 FWH 9.12,XHARBOUR 1.2,ADS 9.0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.