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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-06-2005
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
Como comprimo un archivo!?

Necesito comprimir un archivo, pero quiero hacer el codigo claro en Delphi, para tratar de hacerlo mas pequeño posible. Me podrian decir de que forma lo podria hacer. A y que no sea utilizando WinZip ni WinRAR, se podria robar las extenciones para descomprimirlo, pero no me gustaria usar el programa, porque estaria en lo mismo. Quiero comprimirlo lo mas que se pueda.

Recomendable
- O un codigo, componentes, o Algoritmo

Thank's

Última edición por juliopag1 fecha: 22-06-2005 a las 17:28:36.
Responder Con Cita
  #2  
Antiguo 22-06-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Checa la información en este hilo

Puedes usar la búsqueda en los foros para encontrar más información.
__________________

Responder Con Cita
  #3  
Antiguo 22-06-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Che mira aca te paso el link de donde descargue el TZIP.. es una mazas y muy facil de usar!!


http://www.programmersheaven.com/zone2/cat56/2862.htm

o sino esta!!

http://www.geocities.com/siliconvalley/network/2114/zipbeta.html
Responder Con Cita
  #4  
Antiguo 22-06-2005
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
Me gustaria mas un codigo [Algo propio]

Me gustaria mas un codigo [Algo propio], que se pueda modificar de forma tal que pueda manejar el tamaño que va a tener el archivo. Quiero que sea very small.

Thank's
Responder Con Cita
  #5  
Antiguo 22-06-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Aquí hay un ejemplo sombre como comprimir archivos usando la dll cabinet el detalle es que esta in ingles
__________________


Última edición por ContraVeneno fecha: 22-06-2005 a las 18:32:59.
Responder Con Cita
  #6  
Antiguo 22-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Cita:
Empezado por juliopag1
Me gustaria mas un codigo [Algo propio],
No entiendo.. queres Algo propio, pero queres que alguien mas te lo haga??
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 22-06-2005
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
En realidad!

Cita:
Empezado por jachguate
No entiendo.. queres Algo propio, pero queres que alguien mas te lo haga??
En realidad, lo que quiero que me den las herramientas, no se Ej: utiliza el comando X de tal manera y de hay yo parto.

Quiero hacerlo yo!
Responder Con Cita
  #8  
Antiguo 22-06-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Che julito.. si te bajas eso que te dije, solo tenes que agregar el .pas en las llamdas. despues lo creas.. y bueno ... hay ejemplos.. pero si queres algo te paso.

Código:
Código Delphi [-]
 
 unit CompactRep;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, ExtCtrls,zip, registry, JRO_TLB;
 
 //unidad agregada!
 ........
 function TCompactarYreparar.Zipear: boolean;
 var Zip:TZip;
    ruta:String;
 begin
 TRY
    ruta:=LeerPath;
    reparar(ruta);
    if Not DirectoryExists(ruta + 'BackUp\') then
     CreateDir(ruta + 'BackUp\');
    Zip:=TZip.create(nil);
    zip.FileSpecList.Add(ruta + 'Base.mdb');
    zip.Filename:=ruta + 'BackUp\' + FormatDateTime('DDMM_hhmm',now)+'.ZIP';
    zip.Add;
    if FileExists(ruta + 'Base.mdb') then
     DeleteFile(ruta + 'Base.mdb');
    CopyFile(pchar(ruta + 'basenueva.mdb'),Pchar(ruta+'Base.mdb'),false);
    if FileExists(ruta+'basenueva.mdb') then
     DeleteFile(ruta+'basenueva.mdb');
    result:=TRUE;
 EXCEPT
    REsult:=FALSE
 END;
 end;
Este codigo lo que hace es zipear una base de datos la cual fue compactada por otro procedimiento..

Este otro agarra una lista de archivos y los zipea..
y tambien te paso la funcion que los dezipea!!

Código:
 
Código Delphi [-]
 Function zipear(FileName,RutaOrigen, RutaDestino:string;Lista:array of string):string;
 var zip1:tzip;
    i:integer;
 begin
   try
    zip1:=tzip.create(nil);
    i:=0;
    while lista[i]<>'' do
     begin
     zip1.FileSpecList.Add(RutaOrigen + lista[i]);
     i:=i+1;
     end;
 
    EscribirAuditoria('Comienza El Proceso de Zipeado: ' + FileName);
    zip1.Filename:=RutaDestino+FileName;
    zip1.ShowProgressDialog:=true;
    zip1.add;
    zipear:='correcto';
    EscribirAuditoria('Se Completo Correctamente: ' + filename);
   except
    zipear:='error';
    EscribirAuditoria('Se Produjo un Error Zipeando: ' + filename);
    EscribirAuditoria('Borrando el Archivo Zip: '+ FileName);
    DeleteFile(RutaDestino + FileName);
   end;
 end;
 
 {Funcion Que Realiza el desZipeado de los Archivos
 y devuelve el estado final del proceso}
 Function deszipear(FileName,RutaOrigen,RutaDestino:string):string;
 var zip1:tzip;
 begin
    try
     zip1:=tzip.create(nil);
     EscribirAuditoria('Comienza El Proceso de DesZipeado: ' + FileName);
     zip1.Filename :=RutaOrigen + FileName;
     zip1.ExtractPath:=RutaDestino;
     zip1.ShowProgressDialog:=false;
     zip1.Extract;
     deszipear:='correcto';
     EscribirAuditoria('Se Completo Correctamente: ' + filename);
     Escribirauditoria('Borrando El Archivo ZIP: ' +Filename);
     DeleteFile(RutaOrigen + FileName);
    except
     deszipear:='error';
     EscribirAuditoria('Se Produjo un Error DesZipeando: ' + filename);
     Escribirauditoria('Borrando Archivos Que Componen : ' +Filename);
     DeleteFile(RutaDestino + '*.*');
     EscribirAuditoria('Borrando el Archivo Zip: ' + FileName);
     DeleteFile(RutaOrigen + FileName);
    end;
 end;
Responder Con Cita
  #9  
Antiguo 22-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Bien, entonces estos vínculos podrian serte útiles:

http://en.wikipedia.org/wiki/Compression_algorithm
http://www.gzip.org/zlib/rfc-deflate.html
http://www.gzip.org/deflate.html
http://www.gzip.org/algorithm.txt
http://www.programmersheaven.com/zone24/cat857/

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 22-06-2005
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Ok me retracto no habia entendido tu pregunta.. lo que queres hacer es escribir tu propio metodo de compresion de archivos.
Si tenes tiempo y ganas de investigar, podes buscar sobre REDES NEURONALES ARTIFICIALES, en las cuales se tulizan estos modelos para la compresion de archvios.. (compresion de todo tipo de información)..
Responder Con Cita
  #11  
Antiguo 23-06-2005
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Lightbulb a lo mejor te sirve

Como dice Enan0, si quieres escribir tu propio algoritmo tal vez te resulte de muchísima utilidad bucar en google con estos términos:
  • Códigos de Huffman
  • LZ77
  • LZSS
  • LZRW1
  • LZ78
  • LZW
  • LZJH
Ahora, si no tienes mucha noción de esos algoritmos, te recomiendo revisar los links de esta búsqueda realizaba en google
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #12  
Antiguo 23-06-2005
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
Thumbs up Gracias

Me pondre a revisar!!

Thank's
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


La franja horaria es GMT +2. Ahora son las 12:00:20.


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