Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dateiarchivierung ohne Komponenten (https://www.delphipraxis.net/115525-dateiarchivierung-ohne-komponenten.html)

engel90 13. Jun 2008 11:45


Dateiarchivierung ohne Komponenten
 
Hallo liebe DPler,
ich schreibe zur Zeit an einem Datenbankprogramm (XML-basiert). Dabei fallen zur Speicherung mehrere XML-Dateien an, welche ich gerne in einem Archiv zusammenfassen und komprimieren würde. Der Komprimierungsvorgang würde ich gerne in eine DLL auslagern um ihn eventuell später einfach weitere Komprimierungen anbieten zu können.

Bis jetzt habe ich jedoch bis auf Microsofts Cabinet Format keine Komprimierung gefunden welche nicht in Komponenten gekapselt ist und das Tutorial im Delphi-Treff ist für mich vollkommen unverständlich.

Daher suche ich entweder ein anderes Kompressionsverfahren oder ein verständlicheres Tutorial zum Cabinetformat.

MfG
Engel90

Luckie 13. Jun 2008 11:59

Re: Dateiarchivierung ohne Komponenten
 
Die 7Zip gibt es als DLL mit einer dazugehörigen API, glaube ich.

gammatester 13. Jun 2008 12:17

Re: Dateiarchivierung ohne Komponenten
 
Geht es 'nur' um Komprimierung oder eigentlich doch um Archivierung?. Für's Komprimieren wäre doch zlib ein offensichtlicher Kandidat; gibt's auch notfalls auch als DLL.

Gruß Gammatester

engel90 13. Jun 2008 12:37

Re: Dateiarchivierung ohne Komponenten
 
Zitat:

Zitat von Luckie
Die 7Zip gibt es als DLL mit einer dazugehörigen API, glaube ich.

Muss ich da dann eine weitere DLL beim Programm mitliefern ?


Zitat:

Zitat von gammatester
Geht es 'nur' um Komprimierung oder eigentlich doch um Archivierung?. Für's Komprimieren wäre doch zlib ein offensichtlicher Kandidat; gibt's auch notfalls auch als DLL.

Es geht darum mehrere Dateien zu einer zusammenzufassen (also zu archivieren) und diese dann zu komprimieren um Speicherplatz zu sparen.

himitsu 13. Jun 2008 12:52

Re: Dateiarchivierung ohne Komponenten
 
theoretisch ja, aber man kann die DLL auch in den Programmresourcen ablegen.

oder du minnst dir den QuellCode, übersetzt ihn nach Delphi und steckst ihn in 'ne Unit :angel2:

gammatester 13. Jun 2008 13:00

Re: Dateiarchivierung ohne Komponenten
 
Zitat:

Zitat von engel90
Es geht darum mehrere Dateien zu einer zusammenzufassen (also zu archivieren) und diese dann zu komprimieren um Speicherplatz zu sparen.

Das erscheint mir etwas ungewöhnlich: Sieht wie ein Solidarchiv aus. Um auf einzelne Teile zu zugreifen, muß also alles vorhergehende dekomprimiert werden.

Aber die interessante Frage ist: Wer archiviert? Du (bzw. Dein Programm) oder soll das auch die DLL machen? In Deinem Originalbeitrag sah es so aus, als wenn nur die Komprimierung von der DLL gemacht werden soll. Und dazu wäre das pure zlib geeignet (kann auch direkt eingebunden werden und es muß dann keine DLL mitgeliefert werden).

Gammatester

engel90 13. Jun 2008 13:09

Re: Dateiarchivierung ohne Komponenten
 
Zitat:

Zitat von gammatester
Zitat:

Zitat von engel90
Es geht darum mehrere Dateien zu einer zusammenzufassen (also zu archivieren) und diese dann zu komprimieren um Speicherplatz zu sparen.

Das erscheint mir etwas ungewöhnlich: Sieht wie ein Solidarchiv aus. Um auf einzelne Teile zu zugreifen, muß also alles vorhergehende dekomprimiert werden.

Aber die interessante Frage ist: Wer archiviert? Du (bzw. Dein Programm) oder soll das auch die DLL machen? In Deinem Originalbeitrag sah es so aus, als wenn nur die Komprimierung von der DLL gemacht werden soll. Und dazu wäre das pure zlib geeignet (kann auch direkt eingebunden werden und es muß dann keine DLL mitgeliefert werden).

Gammatester

Also mein Programm erstellt mehrere XML-Dateien in einem bestimmten Verzeichnis und nun wollte ich ne DLL schreiben, welcher das Verzeichnis und der Speicherort des Archives übergeben wird und die DLL archiviert und komprimiert nun alle XML-Dateien und speichert das Archiv am übergebenen Speicherziel.

RWarnecke 13. Jun 2008 14:08

Re: Dateiarchivierung ohne Komponenten
 
Zitat:

Zitat von Luckie
Die 7Zip gibt es als DLL mit einer dazugehörigen API, glaube ich.

Hier ist ein passender Thread zu 7ZIP & Delphi

engel90 13. Jun 2008 16:30

Re: Dateiarchivierung ohne Komponenten
 
vielen dank an alle :-D

ich werd wohl 7-zip für mein programm benutzen.


:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz