Jump to content
Fivewin Brasil

Listar arquivos de um ZIP(Resolvido, Aleluia!!)


sambomb

Recommended Posts

  • Replies 55
  • Created
  • Last Reply

Top Posters In This Topic

Olá,

Com a TLib, vc só pode retirar alguma função ou colocar dentro da Lib, não dá para saber quais os parâmetros, e realmente é meio complicado, eu para descobrir um parâmetro outro dia, tive q ficar fazendo um monte de testes icon_smile_sad.gif, mesmo olhando nos prgs que vêm no samples do xHarbour, não dá para entender direito icon_smile_sad.gif, e não encontrei nenhuma documentação sobre isso icon_smile_sad.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

Valeu!!icon_smile_big.gif

Alguem sabe como converter vários *.htm em um *.xCHM(arquivo de ajuda do xDev)... que assim eu adicionava ao help....

Ou então quem sabe adicionar as funções para a lista que define o autocompletar...

samirabreu@hotmail.com

xHarbour 1.1.0 + FwXh 8.02

Link to comment
Share on other sites

citação:

citação:

Alias, coloquei no 4shared:

http://www.4shared.com/file/67885156/2c19b7a5/doc_xhb.html

Leonardo Machado

Porto Alegre-RS

Hwgui + Mysql / xHarbour 1.0.0


id=quote>id=quote>

Valew icon_smile_big.gif

Por um acaso vc não encontrou nenhum help do Bcc 5.5 né ? icon_smile_big.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

Pior que tenho, mas esse não da pra colcoar no 4shared...

Me add no MSN que depois das 18:30 te envio ele.

suporte@sygecom.com.br

Leonardo Machado

Porto Alegre-RS

Hwgui + Mysql / xHarbour 1.0.0

Link to comment
Share on other sites

citação:

citação:

citação:

Alias, coloquei no 4shared:

http://www.4shared.com/file/67885156/2c19b7a5/doc_xhb.html

Leonardo Machado

Porto Alegre-RS

Hwgui + Mysql / xHarbour 1.0.0


id=quote>id=quote>

Valew icon_smile_big.gif

Por um acaso vc não encontrou nenhum help do Bcc 5.5 né ? icon_smile_big.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

Pior que tenho, mas esse não da pra colcoar no 4shared...

Me add no MSN que depois das 18:30 te envio ele.

suporte@sygecom.com.br

Leonardo Machado

Porto Alegre-RS

Hwgui + Mysql / xHarbour 1.0.0


id=quote>id=quote>

Ao menos o tópico serviu para ajudar outras pessoas também, obrigado a todos que colaboraram icon_smile_wink.gif

samirabreu@hotmail.com

xHarbour 1.1.0 + FwXh 8.02

Link to comment
Share on other sites

Hoje após analisar com calma constatei que não está completa a documentação, falta por exemplo a função HB_GETFILESINZIP

que é essencial pois com ela se obtem os arquivos que estão incluidos dentro de um ZIP, servindo para edição....

e se falta uma quantas outras podem faltar?

PS: todas as funções existentes nesse help eu ja havia obtido no forum internacional e havia postado aqui quais eram....

Mas, mais uma vez obrigado pela tentativa icon_smile_wink.gif

samirabreu@hotmail.com

xHarbour 1.1.0 + FwXh 8.02

Link to comment
Share on other sites

citação:

Hoje após analisar com calma constatei que não está completa a documentação, falta por exemplo a função HB_GETFILESINZIP

que é essencial pois com ela se obtem os arquivos que estão incluidos dentro de um ZIP, servindo para edição....

e se falta uma quantas outras podem faltar?

PS: todas as funções existentes nesse help eu ja havia obtido no forum internacional e havia postado aqui quais eram....

Mas, mais uma vez obrigado pela tentativa icon_smile_wink.gif

samirabreu@hotmail.com

xHarbour 1.1.0 + FwXh 8.02


id=quote>id=quote>

Olá,

Pelo exemplo do xHarbour, me parece q retorna um array com os files, vc deve passar o arquivos.zip no parâmetro.


aFiles := hb_GetFilesInZip( "test3.zip" )

if aFiles != NIL

? str( Len( aFiles ) ) + " files are in the zip"

endif

id=code>id=code>

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

os retornos são esses:

//-- Verifica qual informação está sendo obtida

If j = 1

Result := "Nome: "

elseif j = 2

Result := "Tamanho: "

elseif j = 3

Result := "Status: "

elseif j = 4

Result := "Tamanho Comprimido: "

elseif j = 5

Result := "% Compressão: "

elseif j = 6

Result := "Data: "

elseif j = 7

Result := "Hora: "

elseif j = 8

Result := "Código: "

elseif j = 9

Result := "Propriedades: "

end

OBS.: j = a dimensão da matriz

Só o que não tenho são os parâmetros, e desconfio que existam outras funções também... como por exemplo os substitutos para GetFirstInZip() e GetNextInZip()

PS.: esse código(j = 8) é o código CRC32 para redundancia (;))

samirabreu@hotmail.com

xHarbour 1.1.0 + FwXh 8.02

Editado por - sambomb on 23/10/2008 10:27:19

Link to comment
Share on other sites

citação:

Olá,

Desculpe, não entendi, de qual parametro vc está falando ?

Já q ele lhe retorna um array multi, com todos os files dentro do zip ?

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

exato é o hb_GetFilesInZip()

achei um exemplo que usa assim : HB_GETFILESINZIP("caminho do arquivo em caracter","dados completos como lógico")

não sei se tem alguma outro parametro ou entao alguma outra função relacionada a Zip....

samirabreu@hotmail.com

xHarbour 1.1.0 + FwXh 8.02

Link to comment
Share on other sites

citação:

Olá,

Vc não estaria confundindo com o HB_UnZipFile ?

HB_UnZipFile("Programa.Zip",{|cFile,nPos| oMeter1:MeterSet(nPos)},.F.,"",cDriv+oSistema:cDiretPadra,aFiles)

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

Creio que não... o hb_GetFilesInZip() retorna esses valores que informei, o HB_UnZipFile() extrai os arquivos que vc passa em um array, e o retorno dele é lógico não uma matriz...

samirabreu@hotmail.com

xHarbour 1.1.0 + FwXh 8.02

Link to comment
Share on other sites

"Pera-lá" icon_smile_big.gif

Vc não está querendo saber quais são os arquivos que estão dentro do Zip ?

Se sim, é o HB_GETFILESINZIP, que lhe retorna um array contendo todos os arquivos que estão nele, agora se não for isso, não entendi nada icon_smile_big.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

citação:

"Pera-lá" icon_smile_big.gif

Vc não está querendo saber quais são os arquivos que estão dentro do Zip ?

Se sim, é o HB_GETFILESINZIP, que lhe retorna um array contendo todos os arquivos que estão nele, agora se não for isso, não entendi nada icon_smile_big.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

sim e não... Sim porque era realmente dele que eu estava falando e não porque eu já estou conseguindo resgatar os valores de dentro dele apesar de não ter a sintaxe completa dele, o que quis dizer é que o help que me foi passado estava incompleto e essa era uma das funções que eu não tenho os parametros completos....

Estou tendo dificuldade para "editar" um arquivo Zip, o Array de caminhos que recebo atraves do GetFilesInZip aparentemente nao é o suficiente...

Utilizo a função GetFilesInZip() e jogo os caminhos em um dbf temporário e do dbf retiro um array que jogo para a função Hb_ZipFile () mas grava um Zip vazio....

samirabreu@hotmail.com

xHarbour 1.1.0 + FwXh 8.02

Link to comment
Share on other sites

Mais alguém se arrisca?

Não to conseguindo extrair também....

citação:

****************************************************************************

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, cTipoFile:=ValType(paFile), cTipoDest:=ValType(pcDestPath)

Default lAvisa := .F.

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

elseif cTipoFile == "C"

paFile := {paFile}

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

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 CheckUnZip(pcDestPath,paFile)

//-- Se o parâmetro foi indicado pergunta se deseja sobreescrever

if SN("Arquivo "+paFile+" já encontrado, sobreescreve")

lExtrai := .T.

else

lExtrai := .F.

end

end

end

//-- Testa se pode extrair ou não

if lExtrai

Alert(::cPath+::cNome + CRLF + pcDestPath + CRLF + paFile)

citação:

Esse alert me retorna todos os valores corretos, fui pegar os arquivos de um zip em C:\Teste.Zip:

::cPath+::cNome retorna C:\Teste.Zip

pcDestPath retorna C:\

paFile o arquivo que eu quero extrair

id=red>
id=quote>id=quote>

HB_UNZIPFILE(::cPath+::cNome,,,,pcDestPath,paFile)

end

end

return nil


id=quote>id=quote>

Obs.: HB_UNZIPFILE(::cPath+::cNome,,,,pcDestPath,paFile)

sempre me retorna falso, ja tentei com lWithPath .T. também

HB_UNZIPFILE(::cPath+::cNome,,.T.,,pcDestPath,paFile)

e deu no mesmo

MSN: samirabreu@hotmail.com

Skype: SamirAbreu

xHarbour 1.1.0 + FwXh 8.02

Editado por - sambomb on 24/10/2008 14:27:46

Link to comment
Share on other sites

citação:

Veja se ajuda:

http://www.pctoledo.com.br/forum/viewtopic.php?f=43&t=6757

Leonardo Machado

Porto Alegre-RS

Hwgui + Mysql / xHarbour 1.0.0


id=quote>id=quote>

Tem essa parte aqui que eu preciso:

"aExtract := hb_GetFilesInZip( vNome_zip )

HB_UNZIPFILE( vNome_zip,,.F.,"senha", aDir1, aExtract )"

id=red>

Mas eu faço o mesmo....

citação: //-- Obtém informações dos arquivos contidos no zip

aZip := HB_GETFILESINZIP(pcPath+pcNome,.T.)

//-- pcPath é o caminho e pcNome o nome do arquivo

For i := 1 to Len(aZip)

aAdd(Result,"C:\"+aZip[i,1],aZip[i,2],aZip[i,6],aZip[i,7],aZip[i,9]})

end


id=quote>id=quote>

Uso assim pois preciso de outros dados além do nome do arquivo, vou testar se do jeito que você faz resolve meu problema, mas para extrair está identico:

PS.: o a 1ª dimensão do retorno com o parametro sendo indicado como .T. é identica ao retorno de quando não se indica o parametro, então não é isso.... e tirar ou adicionar o caminho no meu caso "C:\" não altera o resultado para as outras funções... (editado 24/10/08 16:42)

citação:

HB_UNZIPFILE( vNome_zip,,.F.,"senha", aDir1, aExtract )id=blue>

Result:=HB_UNZIPFILE(::cPath+::cNome,,.F.,,pcDestPath,paFile)

id=red>

Eu uso como caracter e você como array mas na documentação está dizendo que pode ser os 2 e também ja testei essa hipótese....


id=quote>id=quote>

MSN: samirabreu@hotmail.com

Skype: SamirAbreu

xHarbour 1.1.0 + FwXh 8.02

Editado por - sambomb on 24/10/2008 16:42:12

Link to comment
Share on other sites

É.... pelo visto ninguem sabe uma escapatória, "e agora quem poderá me ajudar?"

PS.: Kapiaba, o Xlite não ta extraindo nenhum arquivo aqui no meu PC, não sei se é um erro do programa ou se talvez seja alguma coisa relacionada ao PC pois eu tb nao consigo extrair nada no meu programa....

MSN: samirabreu@hotmail.com

Skype: SamirAbreu

xHarbour 1.1.0 + FwXh 8.02

Link to comment
Share on other sites

desculpe pelo comentário, mas vc colocou tanta coisa neste post que eu não estou mais sabendo oq vc está precisando...

achei q era saber quais os arquivos que estão dentro de um zip, mas parece que não é...

oq vc está querendo fazer exatamente ?

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

Link to comment
Share on other sites

Yuri, no começo eu precisava da documentação de 32 bits para poder obter os arquivos de dentro do ZIP mas conforme foi desenrolando as coisas apareceram outra necessidades e para não poluir o forum com outros tópicos sobre ZIP, acabei poluindo o tópico com outras coisas que inicialmente não eram o foco, mas sempre subentendido sob o assunto de ZIP....

Atualmente preciso de ajuda para extrair os arquivosid=red>, o xBlite que foi o mais completo que achei no forum nao funciona a extração e é basicamente o unico ponto de referencia que atua de forma similar ao que eu estou desenvolvendo.

atualmente o meu código está assim:

citação:

****************************************************************************

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, cTipoFile:=ValType(paFile), cTipoDest:=ValType(pcDestPath)

Local Result := .F.

Default lAvisa := .F.

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

elseif cTipoFile == "C"

paFile := {paFile}

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

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 CheckUnZip(pcDestPath,paFile)

//-- Se o parâmetro foi indicado pergunta se deseja sobreescrever

if SN("Arquivo "+paFile+" já encontrado, sobreescreve")

lExtrai := .T.

else

lExtrai := .F.

end

end

end

//-- Testa se pode extrair ou não

if lExtrai

Result := HB_UNZIPFILE(::cPath+::cNome,::cPass,.T.,,pcDestPath,paFile)

end

end

return Result


id=quote>id=quote>

MSN: samirabreu@hotmail.com

Skype: SamirAbreu

xHarbour 1.1.0 + FwXh 8.02

Link to comment
Share on other sites

Atualmente preciso de ajuda para extrair os arquivos, o xBlite que foi o mais completo que achei no forum nao funciona a extração e é basicamente o unico ponto de referencia que atua de forma similar ao que eu estou desenvolvendo.

COMO ASSIM?? NÃO DESCOMPACTA OS ARQUIVOS?? PORQUE?? AQUI FUNCIONA PERFEITO!! NÃO ENTENDI??

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...