C++ zip-Bibliothek

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Jonathan
Establishment
Beiträge: 2369
Registriert: 04.08.2004, 20:06
Kontaktdaten:

C++ zip-Bibliothek

Beitrag von Jonathan »

Hi,
ich möchte zip-Dateien lesen und schreiben können. Und das am liebsten möglichst komfortabel, in modernen C++ und so, und schön wäre es auch, wenn diese Bibliothek nicht besonders groß ist und keine anderen Abhängigkeiten hat, so dass ich sie einfach in mein Projekt mit rein packen kann (um Abhängigkeiten zu minimieren).
Gibt es da irgendwelche Empfehlungen? Naheliegend wäre natürlich sowas wie zlib, aber das ist halt C. Boost hat da auch irgendwas interessantes mit Archiven, aber so ganz traue ich der Sache noch nicht.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: C++ zip-Bibliothek

Beitrag von dowhilefor »

Diese Art von Komfort findet man leider selten bei C++. Imho das was mich auch am meisten davon abhält mehr in C++ zu programmieren. Man muss halt noch einiges selber machen. Aber ganz ehrlich mit hilfe von zlib (bzw. minizip) sollte das doch kein großer Aufwand sein. Eine Klasse mit 3-4 Methoden schreiben halte ich jetzt nicht für den Akt und vorallem hat es den Vorteil das man es leichter auf seine Bedürfnisse anpassen kann, bspw. Asynchrones Laden mit Fortschritt; Über verschiedene Streams; mit eigenem Datei format etc.
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
Benutzeravatar
Schrompf
Moderator
Beiträge: 4855
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: C++ zip-Bibliothek

Beitrag von Schrompf »

Ich benutze auch die zlib, mit eigenen kleinen Helfern für die Interaktion mit meinen Puffer- und Streaming-Klassen.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8240
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: C++ zip-Bibliothek

Beitrag von Krishty »

Häh? Geht es hier um das Laden von .zip-Archiven oder bloß um irgendeine Kompression, die als Blob ausgeschrieben und geladen wird?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: C++ zip-Bibliothek

Beitrag von dot »

zlib wurde ja schon erwähnt, snappy dürfte auch noch interessant sein. Ich geh davon aus, dass dir bewusst ist, dass beide sich nur um die Kompression kümmern und vom .zip Dateiformat keine Ahnung haben. Das ist aber relativ simpel, also entweder selber machen oder andere Libraries verwenden (bei zlib ist z.B. minizip dabei, das macht das dann)...
Benutzeravatar
Jonathan
Establishment
Beiträge: 2369
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: C++ zip-Bibliothek

Beitrag von Jonathan »

Es geht um zip-Archive. Die Kompression ist sogar mehr oder weniger egal, weil ich eh Bilddateien darein packe, die dann ja schon komprimiert wären. Es geht eher darum, dass man viele Dateien zu einer einzelnen zusammen fasst, die dann handlicher ist. Und es sollen halt zip-Dateien (oder irgendein anderes Standardarchivformat) sein, damit man sie auch mal mit einem anderen Programm öffnen oder generieren kann.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Helmut
Establishment
Beiträge: 237
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: C++ zip-Bibliothek

Beitrag von Helmut »

Diese Bibliothek ist sehr leicht zu benutzen. Es bietet ein paar C Funktionen um Zip Dateien zu öffnen, ändern und co. Und man muss nur paar .cpp Dateien zum Projekt hinzufügen um es benutzen zu können. Abhängigkeiten hat es keine außer Windows.
hagbard
Beiträge: 66
Registriert: 05.08.2010, 23:54

Re: C++ zip-Bibliothek

Beitrag von hagbard »

Mir würde noch 7zip einfallen als alternativer Standard. Dazu gibt es auch ein freies SDK, habe aber keine Ahnung wie intuitiv sich das benutzen lässt...
Benutzeravatar
Jonathan
Establishment
Beiträge: 2369
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: C++ zip-Bibliothek

Beitrag von Jonathan »

Hm, Windows als Abhängigkeit ist leider doof, weil es am besten auch unter Mac laufen sollte. 7zip hab ich mir auch mal angesehen, das SDK ist allerdings recht mächtig und sieht für mich zu komplex für eine doch eigentlich recht leichte Aufgabe aus (die meisten Features brauche ich ja auch überhaupt nicht). Mein bisheriger Plan ist zlib+minizip, naja. Freut mich nicht unbedingt, aber andererseits kann das so hässlich ja auch nicht sein.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Thoran
Establishment
Beiträge: 224
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: C++ zip-Bibliothek

Beitrag von Thoran »

Alternativ würde ich mal generell nach virtuellen Dateisystemen suchen. Als spontanes Beispiel fällt mir da OFS (Ogitor File System) ein, welches Bestandteil des Repositories des Szeneneditors Ogitor ist. Damit kann man seine Dateien in einer Datei über ein VFS lesen und schreiben. Ich bin jetzt nicht sicher in wie weit da ein Editor zum Erzeugen solcher OFS-Dateien dabei war, da es schon ne Weile her ist, dass ich damit gearbeitet habe. Die OFS-Bibliothek bleibt dabei recht klein mit entsprechend kleinem Interface. OFS hat keine Kompression und auch nix mit ZIP zu tun.
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Antworten