Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Clase TZipFile, para comprimir y descomprimir archivos

Hola.

Hoy estuve revisando algunas de las novedades de Delphi XE2, llamando mi atención una clase nativa de nombre TZipFile cuyo propósito es permitir la creación de archivos comprimidos ZIP, así como la extracción del contenido de ese tipo de archivos.

Después de hacer unas pruebas con esta clase, consideré que valdría la pena mostrarles el código, para quien pudiera servirle:

Código Delphi [-]
Uses
  System.Zip;

Procedure TForm1.Button1Click(Sender: TObject);
Var
  Zip :TZipFile;
Begin
  { Creamos un archivo ZIP de nombre "Prueba.zip", comprimiendo dentro de
    él los archivos Carta.txt y Dibujo.bmp }

  Zip := TZipFile.Create;

  Try
    Zip.Open ('C:\Delphi\Ejemplos\TZipFile\Prueba.zip', zmWrite);
    Zip.Add ('C:\Delphi\Ejemplos\TZipFile\Carta.txt');
    Zip.Add ('C:\Delphi\Ejemplos\TZipFile\Dibujo.bmp');
  Finally
    Zip.Free;
  End;
End;

procedure TForm1.Button2Click(Sender: TObject);
Var
  I :Integer;
  Zip :TZipFile;
Begin
  { Abrimos el archivo Prueba.zip y mostramos dentro de Memo1 el nombre de
    los archivos comprimidos que contiene }

  Zip := TZipFile.Create;

  Try
    Zip.Open ('C:\Delphi\Ejemplos\TZipFile\Prueba.zip', zmRead);
    Memo1.Clear;

    For I := 0 To High (Zip.FileNames) Do
      Memo1.Lines.Add (Zip.FileNames [i]);
  Finally
    Zip.Free;
  End;
end;

procedure TForm1.Button3Click(Sender: TObject);
Var
  Zip :TZipFile;
Begin
  { Extraemos en el directorio C:\Delphi\Ejemplos\TZipFile los archivos que
    están dentro de Prueba.zip }

  Zip := TZipFile.Create;

  Try
    Zip.Open ('C:\Delphi\Ejemplos\TZipFile\Prueba.zip', zmRead);
    Zip.ExtractAll('C:\Delphi\Ejemplos\TZipFile');
  Finally
    Zip.Free;
  End;
End;

Por cierto, encontré este artículo de nuestro buen amigo Germán Estévez, en donde explica con mucho mayor detalle esta característica.

Saludos.

Al González.

Última edición por Al González fecha: 23-10-2012 a las 10:05:18.
Responder Con Cita
  #2  
Antiguo 23-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gracias por la aportación
Responder Con Cita
  #3  
Antiguo 23-10-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.003
Poder: 26
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
No está mal.

En Free Pascal existen dos unidades (libtar y zstream) con clases cuya combinación permiten manejar archivos .tar, .gz y .tar.gz. La diferencia está en que, en estos casos, son derivadas de la clase TStream, por lo que no son simples contenedores y no tienen que ser, necesariamente, ficheros de disco (por ejemplo, puede usarse para acceso a redes). Claro que, por lo poco que sé, con el formato PKZIP no debe ser fácil usar TStream.

Me pregunto si estas unidades (libtar y zstream) pueden usarse en Delphi.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 23-10-2012
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 933
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Me pregunto si estas unidades (libtar y zstream) pueden usarse en Delphi.
Solo existe una manera de salir de la duda...

Saludos
Responder Con Cita
  #5  
Antiguo 23-10-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.119
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Cita:
Empezado por cloayza Ver Mensaje
Solo existe una manera de salir de la duda...

Saludos
Tal vez sean las mismas unidades que usan en los componentes Turbo Power Abbrevia... desde luego dichos "formatos" están soportados, y, por otro lado, me suenan a mí dichas unidades...
Responder Con Cita
  #6  
Antiguo 23-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Eso iba a decir, que "así visto/leido" parece Abbrevia
Responder Con Cita
  #7  
Antiguo 23-10-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Ñuño Martínez Ver Mensaje
[...] Me pregunto si estas unidades (libtar y zstream) pueden usarse en Delphi.
Si compilan en Free Pascal / Lazarus, no veo por qué no pudieran adaptarse a Delphi.

Por otra parte, revisando más a fondo la clase TZipFile, veo que ésta hace uso de la biblioteca ZLib, trabajo original de Jean-loup Gailly y Mark Adler, al que contribuyeron Borland, Base2 Technologies y Roberto Della Pasqua para importarla a Delphi.

Como curiosidad, en el código de esta nueva clase podemos encontrar ejemplos de algunas de las características más "recientes" del compilador y la RTL, como:
  • tipos de datos de clase
  • campos de clase
  • genéricos
  • diccionarios
  • métodos anónimos
  • ámbitos de unidades (conocidos como "espacios de nombres" en otros lenguajes)
  • función nativa ReturnAddress
  • constructores de clase
  • destructores de clase

Se me hace agua la boca.

Si tan solo el IDE fuera tan amable, armónico y estable como el de Delphi 7...pero bueno, esos tiempos tardarán en volver y no ayuda quedarse a esperarlos sin hacer nada.
Responder Con Cita
  #8  
Antiguo 23-10-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.003
Poder: 26
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por dec Ver Mensaje
Tal vez sean las mismas unidades que usan en los componentes Turbo Power Abbrevia... desde luego dichos "formatos" están soportados, y, por otro lado, me suenan a mí dichas unidades...
Pues por lo que he leído, no son las mismas clases, aunque los formatos sí están soportados.

Cita:
Empezado por Al González Ver Mensaje
Si compilan en Free Pascal / Lazarus, no veo por qué no pudieran adaptarse a Delphi.
¡Hay tantas cosas que funcionan en Free Pascal y no en Delphi! Mi envolvente para la biblioteca Allegro, sin ir más lejos.

Cita:
Empezado por Al González Ver Mensaje
Si tan solo el IDE fuera tan amable, armónico y estable como el de Delphi 7...pero bueno, esos tiempos tardarán en volver y no ayuda quedarse a esperarlos sin hacer nada.
Ya sabes lo que dice la canción:

"Echar la vista atrás es bueno, a veces.
Mirar hacia delante es vivir sin temor."

Aunque creo que no se refería a lo mismo. ¿O sí?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #9  
Antiguo 23-10-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Mi envolvente para la biblioteca Allegro
Tendría que ser envoltura. Envolvente es un adjetivo

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TFindFiles, una clase para buscar archivos dec Varios 4 11-08-2007 02:43:28
Comprimir y descomprimir con ZipMaster Espartaco OOP 2 22-02-2007 13:45:27
Aqui va una facil: Componente para comprimir archivos (Zip/Rar) Alejo OOP 2 11-02-2007 04:49:57
Consejo acerca de qué componente utilizar para comprimir archivos alastor Varios 6 07-08-2006 20:02:20
descomprimir archivos diniremix Varios 2 15-05-2006 19:35:46


La franja horaria es GMT +2. Ahora son las 02:36:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi