ZIP-Archive mit BlitzBasic
Übersicht

DavidBetreff: ZIP-Archive mit BlitzBasic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Da ich im Moment privat an einer simplen 3D Engine programmiere, hatte ich vor kurzem ein Problem, bei dem sich mir die Frage stellte, wie die Engine Dateien am besten verwalten könnte. Ich hab' dann eine Methode genommen, welche schon von Quake3 bekannt ist. Nämlich alle Dateien in Packages, in Form von ZIP-Archiven, zu speichern. Also habe ich kurz entschlossen eine kleine Library geschrieben, welche ZIP-Archive laden und Dateien daraus extrahieren kann. Aus den dabei gewonnen "Kenntnissen" über ZIP-Archive, habe ich dann noch einen BlitzBasic Beispielscode geschrieben, der grob verdeutlichen soll, wie man ZIP-Datein auch in BlitzBasic verwenden könnte. Ob es Sinn macht, ist natürlich wieder eine andere Frage. ![]() Nebenbei ist bemerkt, das der Code keine der Kompressionsverfahren unterstützt, welche vom ZIP-Format angeboten werden. Weiterhin kann der Code keine Dateien aus dem ZIP-Archive "entpacken", was man aber mit ein paar Zeilen Code realisieren könnte. ZIP-Format, grober Überblick: [DateiHeader 1] [Dateidaten 1] [DateiDescription 1] . . . [DateiHeader n] [Dateidaten n] [DateiDescription n] [Central Directory] [End Central Directory] DateiHeader 1 - DateiHeader n: Hier sind die Dateidaten gespeichert, im Falle von unkomprimierten Dateien können die Daten einfach ausgelesen und in eine externe Datei gespeichert werden. Central Directory: Hier befindet sich eine Liste aller Dateien in diesem ZIP-Archiv + verschiedene Informationen zur betreffenden Datei (z.B. Offset etc...) End Central Directory: Hier befindet sich der "ZIP Footer", also alle Informationen über das ZIP-Archiv So, nach dieser, sehr knappen Erklährung des ZIP-Formats der Beispielscode: BlitzBasic: [AUSKLAPPEN]
So, nach dieser sehr kurzen Anleitung (was auch immer ![]() ![]() grüße |
||
http://bl4ckd0g.funpic.de |
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hm nicht übel. wenn es so funktioniert...habs nicht getestet...
obwohl es eher den character eines codearchiveintrages hat ![]() erweiters doch mal noch um die lese-funktion, und evtl auch um kompression. währe sicher sehr nützlich. |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ja, das mit dem Codearchiv kahm mir danach auch! ![]() Evtl erweiter ich das Ding noch, falls mir meine Arbeit mal wieder Zeit gewährt! ![]() grüße |
||
http://bl4ckd0g.funpic.de |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
So, jetzt kann man aus unkomprimierten Zip-Archiven Dateien extrahieren. Es sei allerdings noch bemerkt, das ich den Code nicht ausgiebig getestet habe und das noch Bugs vorhanden sein könnten. Bei meinen Tests hat allerdings alles geklappt! BlitzBasic: [AUSKLAPPEN]
grüße |
||
http://bl4ckd0g.funpic.de |
- Zuletzt bearbeitet von David am Fr, Okt 15, 2004 7:49, insgesamt einmal bearbeitet
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gute Arbeit!
Ich habe hier nochmal mein alten Code herausgekramt für *.cab Dateien: Zitat: .lib "advpack.dll"
ExtractFiles%(pszCabName$,pszExpandDir$,dwFlags,pszFileList$,lpReserved,dwReserved) : "ExtractFiles" BlitzBasic: [AUSKLAPPEN] ; ------------------------------------------------------------------------- mfg olli |
||
vertex.dreamfall.at | GitHub |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Danke! ![]() Jetzt die anderen, wo bleiben rar, gz und der ganze Rest?? ![]() Dekompression lass ich bei meinem Code jetzt erstmal weg, da mir mein "richtiges" Projekt momentan wichtiger ist... Der Code ist ja quasi ein abgespeckter Port von meiner C++ ZipLib! ![]() Aber vielleicht find ich ja doch noch irgendwann genug Zeit für Huffmann & CO. ![]() grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
nur zur Info,
auf Blitzcoder gibt es eine funktionirende dll für zip-Archive. aber mach nur weiter, ist interessant und vielleicht wird das Ergebnis komfortabler. |
||
solitaire |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ja, ich hab mir schon gedacht, das es da diverse Dll's gibt. Aber der Code soll vorrangig die Grundlagen des ZIP-Formats vermitteln. Wer natürlich Verwendung findet, kann den Code gern nutzen. grüße |
||
http://bl4ckd0g.funpic.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group