Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 12.09.03 17:28 
Hallo,
ich habe ein "Archiver" geschrieben und will nun das die datei gepackt wird(also kleiner gemacht wird) wer kann mir sagen wo ich tutors für zLib oder Bzip2 für delphi(auf deutsch) finden kann ?

ich habe unter google gesucht: Zlib delphi und habe da nichts gefunden dann habe ich hier gesucht: zlib und wurde auch nicht wirklich fündig :(

_________________
MFG
Michael Springwald, "kann kein englisch...."
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Fr 12.09.03 22:00 
Was willst du denn wissen?

Filestream auf, zlib-Stream auf, reinschreiben, zlib-Stream zu, Filestream zu, fertig.
Die Units für die zlib und die bZip2-Unit von Edison Mera sind beide gleich aufgebaut.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 13.09.03 18:15 
genau das will ich wissen. was ist besser zlib oder bZIP 2 ?
gibt es dafür vileicht tutors auf deutsch ???

_________________
MFG
Michael Springwald, "kann kein englisch...."
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Sa 13.09.03 22:23 
Ja WAS willst du denn da wissen?

Was ist denn daran unverständlich?!?!?
Du erzeugst einen Filestream zum schreiben. Dann öffnest du den TCompressionStream aus der zLib und übergibst ihm die Komprimierungsparameter (clNone, clFastest, clMax, clDefault) und den Filestream als Parameter. Dann schreibst du in den Compressionstream und machst anschließend beide wieder zu (zuerst den Compressionstream, dann den Filestream).
Ist wie normales Stream-Management auch!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
var
  FS: TFileStream;
  ZS: TCompressionStream;
  buf: PChar;
begin
  FS := TFileStream.Create('C:\test.z', fmCreate);
  ZS := TCompressionStream.Create(clMax, FS);
  GetMem(buf, 12 + 1);
  buf := 'Hello, world';
  ZS.Write(buf^, StrLen(buf));
  zs.Free;
  fs.Free;
end;


Zugegeben, ich wusste damals auch noch nicht, was ich mit der Unit anfangen soll und hab' gefragt, aber meine Frage wurde beantwortet, du kannst also nicht sagen, daß die Suche hier im Forum nichts ergeben hat!!!


Bzip2 ist von der Kompressionsleistung besser als zip, allerdings ist es nicht sehr weit verbreitet (eigentlich nur unter Linux) und es gibt keinen vorgeschriebenen Standard für mehrere Dateien in einem Archiv, eben weil es hauptsächlich unter Linux eingesetzt wird (weil Windows-Anwender nunmal träge sind *g*) und dort bevorzugt vorher ein Tarball erzeugt wird, wie es zu gzip-Zeiten auch war. Allerdings kann man wie bei zip auch, eine Datenbank als Dateiheader vorne einfügen, damit man mehrere Dateien in einem Archiv verwalten kann. Es ist nur nicht üblich, daher werden andere Programme wohl Probleme mit dem Entpacken bekommen (und den gesamten binären Inhalt einfach in eine Datei schreiben, anstatt jede Datei einzeln zu speichern).
Noch besser als Bzip2 ist übrigens das ACE-Format, bei dem auch wieder ein vereinbarte Standard für mehrere Dateien in einem Archiv definiert ist. Allerdings kenne ich keine Pascal-/Delphi-Unit für ACE (ich weiß nichtmal, ob ACE überhaupt offengelegt ist und es nicht-kommerzielle Versionen davon gibt).

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 14.09.03 00:53 
ace ist leider nicht Freeware meines wissens :(

dann nehme ich bzip2 das passt ja dann gut zu meinem arichver oder ?

_________________
MFG
Michael Springwald, "kann kein englisch...."