Dobry darmowy komponent do pakowania danych

0

Cześć.

Odwiedziłem torry.net z komponentami do kompresji danych, google też, ale nie znalazłem dobrego komponentu do pakowana danych np. Zip'em.
<ort>ściągnąłem </ort>komponent TZip (jbzip32) i rozwaliło mi 3 razy Delphi. Inne darmowe komponenty nie posiadają plików wszystkich, których na google nie mogłem odszukać np. w komponencie: KaZip20.
Tam brakuje pliku bzip2.dcu, którego nie ma nigdzie w sieci, tym bardziej na moim dysku.

Czy posiada ktoś darmowy, prosty komponent do pakowania i/też rozpakowywania danych np. Zipem?
Ewentualnie mógłby wkleić jaką procedurkę jak pakować dane.
Czy ktoś miał do czynienia z komponentem SevenZipVCL_071?
Dzięki ;]

0

OK napisałem ci za pomocą komponentu SevenZip malutki program do pakowania danych z Memo do określonej ścieżki o określonym czasie pod hasło z definiowaną nazwą pliku przez usera. :)
Też niedawno miałem problem z doborem odpowiedniego komponentu. Zostało mi jeszcze znalezienie dobrego darmowego komponentu do wypalania płyt CD/DVD.

Program:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, SevenZipVCL, StdCtrls, JvDialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    open: TJvOpenDialog;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    zip: TSevenZip;
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    Timer1: TTimer;
    Label3: TLabel;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ KOMPONENTY
zip - Sevenzip1
open - JvOpendialog1
 }

//załaduj plik do memo z opendialoga
procedure TForm1.Button1Click(Sender: TObject);
begin
  memo1.Clear;
   if open.Execute = true then  //w opendialog ustaw AllowMultiSelect na True
  memo1.Lines.Add(open.Files.Text);
end;

//spakuj dane z Memo
procedure TForm1.Button2Click(Sender: TObject);
var
   i:integer;
begin
   zip.SZFileName := Edit2.Text; //podaj sciezke z nazwa nowego pliku zip
    for i:=0 to memo1.Lines.Count-1 do
    zip.Files.AddString(memo1.Lines[i]);
   If Edit1.Text <> '' then zip.Password := Edit1.Text; //podaj haslo (opcjonalnie)
  i:=zip.Add;
end;

//spakuj dane o okreslonej godzinie w Edit
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   label3.Caption:=FormatDateTime('hh:mm:ss',Now);
   if Edit3.Text=Label3.Caption then Button2.Click;//pakuje dane o okreslonej w Edit godzinie
end;

end.

Działa super. Dla zainteresowanych polecam sobie napisać jeszcze ekstrakt pliku ZIP (rozpakowywanie). Można jeszcze dorobić Progressbary i inne wodotryski. :)

Komponent SevenZip do ściągnięcia tutaj http://www.torry.net/quicksearchd.php?String=sevenzip&Title=Yes

Miłej zabawy.

0

Fast ZLib http://www.dellapasqua.com/delphizlib/
nie potrzeba zewnętrznych dlli, szybki, kompresja zbliżona do ZIPa, pracuje na streamach więc np. nie trzeba wcześniej zapisywać ściągniętych plików, darmowy i prosty w użyciu jak budowa cepa :p

0

a instalował ktoś z Was sevenZipa pod D7? Bo jak instaluję komponent, to niby się instaluje, ale na pasku tych komponentów go nie ma, w liście komponentów też niestety nie widnieje, więc nawet nie mam jak go wrzucić na formę. Próbowałem sam plik .pas wrzucać, to komponent pojawiał się na pasku komponentów ale jak chciałem go wrzucić na formę to pisało, że nie może odnaleźć pliku 7za.dll ?? Miał ktoś podobny problem?

0

W D7 pro używam http://www.delphizip.org/ sprawdza się świetnie. Ładnie generuje zipy, ma sporo opcji (dzielenie archiwum, pakowanie z podkatalogami itp.)

0

DelphiZip (ZipMaster) chodzi ładnie :)

ZipMaster1.FSpecArgs.Add('C:\folder\**');
ZipMaster1.ZipFileName :='C:\folder.zip';
ZipMaster1.Add;

Jeszcze mam pytanie odnośnie pakowania.
Jeśli w 'C:\folder' są jakieś pliki i INNE FOLDERY, to ten kod z góry pakuje mi do archiwum tylko
pliki, a folderów do archiwum nie pakuje. Jeśli jakimś WinRAR'em albo WipZIP'em pakuje foldery w których są jeszcze inne foldery, to pakuje wszystko razem, ale tutaj tak nie jest. Jak to poprawić?
. - tak pakuje pliki z rozszerzeniami
*.mp3 - tak pakuje same pliki mp3
A co dopisać żeby pakowało i pliki z rozszerzeniami i foldery?

0

Jak rozpakować wybrany plik z archiwum do innego folderu. Prosił bym o gotowy kodzik :d

0

7zip gra i buczy, tylko NA SCIEŻCE musi być odpowiednia dll-ka, zresztą dołączona do paczki - w readme jest wszystko opisane, włącznie z linkiem do ewentualnych najnowszych wersji dll.

Na sourceforge jest również TurboPower Abbrevia - wielki kombajn, ale za to obsługuje kilka standardów pakowania bez dodatkowych dll.

1 użytkowników online, w tym zalogowanych: 0, gości: 1