In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Manejo de TUnzipFile()

Foro público de Xailer en español
Responder
Guillermo Guevara Car
Mensajes: 176
Registrado: Sab Ene 19, 2008 5:52 pm

Manejo de TUnzipFile()

Mensaje por Guillermo Guevara Car »

Requiero extraer del archivo DAT.ZIP unicamente un archivo .
El contenido del archivo .ZIP tiene dos archivos JPG que fueron comprimidos
con TZipFile quedando dentro del archivo DAT.ZIP como se muestra:
C:DAT01FILE.JPG
C:DAT02FILE.JPG
Lo que se requiere es extraer del DAT.ZIP unicamente el archivo:
C:DAT02FILE.JPG
Ya lo intente de mil maneras y no logro extraerlo, que debo poner en el
:aFileMask para obtener el resultado deseado.
WITH OBJECT oZip := TUnzipFile()
:cFileName := "DAT.ZIP"
:aFileMask := ? // QUE DEBO DE INDICAR AQUí PARA EXTRAER EL
ARCHIVO REQUERIDO
:cDirectory := "C:PRUEBA" // CON ESTE DIRECTORIO NO HAY
PROBLEMA PUEDE SER CUALQUIERA
:lIncludePath := .F.
:OnProgress := {|oSender, cFile, nPos| ::oProgressDlg1:nValue :=
(nPos/:nCount)*100}
If :Run()
MsgInfo('Ok')
EndIf
::oProgressDlg1:Stop()
END WITH
Gracias
Guillermo
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Manejo de TUnzipFile()

Mensaje por Xevi »

Guillermo,
Yo lo estoy utilizando así...
aFileMask := { "MiFichero.xxx" }
Ahora bien, tu lo quieres extraer de una carpeta...
Tendrás que probar...
aFileMask := { "DAT02FILE.JPG" }
aFileMask := { "002FILE.JPG"
Un Saludo,
Xevi.
"Guillermo Guevara C." <soporte@pvwin.com> escribió en el mensaje
news:4aef81d1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Requiero extraer del archivo DAT.ZIP unicamente un archivo .
>
> El contenido del archivo .ZIP tiene dos archivos JPG que fueron
> comprimidos con TZipFile quedando dentro del archivo DAT.ZIP como se
> muestra:
>
> C:DAT01FILE.JPG
> C:DAT02FILE.JPG
>
> Lo que se requiere es extraer del DAT.ZIP unicamente el archivo:
> C:DAT02FILE.JPG
>
> Ya lo intente de mil maneras y no logro extraerlo, que debo poner en el
> :aFileMask para obtener el resultado deseado.
>
> WITH OBJECT oZip := TUnzipFile()
> :cFileName := "DAT.ZIP"
> :aFileMask := ? // QUE DEBO DE INDICAR AQUÍ PARA EXTRAER EL
> ARCHIVO REQUERIDO
> :cDirectory := "C:PRUEBA" // CON ESTE DIRECTORIO NO HAY
> PROBLEMA PUEDE SER CUALQUIERA
> :lIncludePath := .F.
> :OnProgress := {|oSender, cFile, nPos| ::oProgressDlg1:nValue :=
> (nPos/:nCount)*100}
> If :Run()
> MsgInfo('Ok')
> EndIf
> ::oProgressDlg1:Stop()
> END WITH
>
> Gracias
>
> Guillermo
Guillermo Guevara Car
Mensajes: 176
Registrado: Sab Ene 19, 2008 5:52 pm

Manejo de TUnzipFile()

Mensaje por Guillermo Guevara Car »

"Xevi" <xevicomas@gmail.com> escribió en el mensaje de noticias
news:4aefdaea$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Guillermo,
>
> Yo lo estoy utilizando así­...
> aFileMask := { "MiFichero.xxx" }
>
> Ahora bien, tu lo quieres extraer de una carpeta...
> Tendrás que probar...
> aFileMask := { "DAT02FILE.JPG" }
> aFileMask := { "002FILE.JPG"
>
>
> Un Saludo,
> Xevi.
>
>
> "Guillermo Guevara C." <soporte@pvwin.com> escribió en el mensaje
> news:4aef81d1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Requiero extraer del archivo DAT.ZIP unicamente un archivo .
>>
>> El contenido del archivo .ZIP tiene dos archivos JPG que fueron
>> comprimidos con TZipFile quedando dentro del archivo DAT.ZIP como se
>> muestra:
>>
>> C:DAT01FILE.JPG
>> C:DAT02FILE.JPG
>>
>> Lo que se requiere es extraer del DAT.ZIP unicamente el archivo:
>> C:DAT02FILE.JPG
>>
>> Ya lo intente de mil maneras y no logro extraerlo, que debo poner en el
>> :aFileMask para obtener el resultado deseado.
>>
>> WITH OBJECT oZip := TUnzipFile()
>> :cFileName := "DAT.ZIP"
>> :aFileMask := ? // QUE DEBO DE INDICAR AQUí PARA EXTRAER EL
>> ARCHIVO REQUERIDO
>> :cDirectory := "C:PRUEBA" // CON ESTE DIRECTORIO NO HAY
>> PROBLEMA PUEDE SER CUALQUIERA
>> :lIncludePath := .F.
>> :OnProgress := {|oSender, cFile, nPos| ::oProgressDlg1:nValue
>> := (nPos/:nCount)*100}
>> If :Run()
>> MsgInfo('Ok')
>> EndIf
>> ::oProgressDlg1:Stop()
>> END WITH
>>
>> Gracias
>>
>> Guillermo
Xevi:
Efectí­vamente funciona bién cuando se trata de un archivo como tu me lo
indicas:
aFileMask := { "DAT02FILE.JPG" }
Ahora se supone que es una máscara y deberí­a de funcionar para extraer
varios archivos que esten referenciados al mismo path, por ejemplo:
aFileMask := { "DAT02*.JPG" }
Pero no funciona, ya probé de varias formas, creo que es un bug de la clase
TUnzipFile, pruébenlo y verán.
¿Que se puede hacer?, estoy detenido por este detalle ó indí­quenme que estoy
haciendo mal.
Gracias Xevi por tu respuesta, el problema sigue ahí­.
Guillermo
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Manejo de TUnzipFile()

Mensaje por jlalin »

Guillermo,
acabo de probar tu ejemplo con un zip exacto al que describes y funciona
perfectamente:
WITH OBJECT TUnzipFile():New()
:cFileName := "c:datDAT.ZIP"
:aFileMask := { "001file.jpg" }
:cDirectory := "C:test"
:OnProgress := {|oSender, cFile| MsgAlert( cFile ) }
:Create()
:lIncludePath := .F.
MsgAlert( :Run() )
END WITH
Saludos,
José Lalí­n
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Manejo de TUnzipFile()

Mensaje por jlalin »

Guillermo,
veo que el problema aparece cuando se especifica una máscara y no un archivo.
He trazado el código y el bug está en hb_unzipfile que hace algo raro con
los paths. Si se hace así­ funciona correctamente:
:aFileMask := { "001*.jpg" }
Saludos,
José Lalí­n
Guillermo Guevara Car
Mensajes: 176
Registrado: Sab Ene 19, 2008 5:52 pm

Manejo de TUnzipFile()

Mensaje por Guillermo Guevara Car »

"José Lalí­n" <dezac_quitaesto_@corevia.com> escribió en el mensaje de
noticias news:[email=4af02748@svctag-j7w3v3j....]4af02748@svctag-j7w3v3j....[/email]
Guillermo,
veo que el problema aparece cuando se especifica una máscara y no un
archivo.
He trazado el código y el bug está en hb_unzipfile que hace algo raro con
los paths. Si se hace así­ funciona correctamente:
:aFileMask := { "001*.jpg" }
Saludos,
José Lalí­n
Gracias José
Lo voy a probar
Guillermo
Responder