Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Dateien aus *.pak auslesen


110022 - Do 26.02.09 23:17
Titel: Dateien aus *.pak auslesen
Hallo leuts.

So ich würde gerne wissen ob es mit wenig arbeit machbar ist 6 Dateien aus einer *.pak Datei in eine TBitmap zu laden.
Und wie das geht wäre auch ganz nett^^

Vielen Dank im Voraus

110022


jaenicke - Do 26.02.09 23:25

Das kommt ja darauf an um welches Dateiformat es sich handelt. Meinst du dieses?
http://de.wikipedia.org/wiki/PAK_(Dateiformat)
Wenn es dieses ist, dann handelt es sich um ein proprietäres Format, das so leicht nicht auslesbar sein dürfte.

Woher stammt die Datei denn?


110022 - Do 26.02.09 23:27

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Das kommt ja darauf an um welches Dateiformat es sich handelt. Meinst du dieses?
http://de.wikipedia.org/wiki/PAK_(Dateiformat)
Wenn es dieses ist, dann handelt es sich um ein proprietäres Format, das so leicht nicht auslesbar sein dürfte.

Woher stammt die Datei denn?

hm, darum ging es aber eigendlich, ein Archiv als pak.
Selber erstellz, mit 6 bmp Dateien.
Welches Archivformat wäre denn sinnvoller?
Zip Rar oder was anderes?


jaenicke - Do 26.02.09 23:34

Für private Zwecke ist z.B. ZipForge kostenlos um Zips zu erstellen:
http://www.componentace.com/zip_component_zip_delphi_zipforge.htm

Dann gibt es hier jede Menge Komponenten:
http://www.torry.net/pages.php?s=99

Hier auch:
http://www.delphi32.com/vcl/lists/sc_n_67_2.asp

Dann gibt es die ZLib Biblitohek.

Und woanders im Internet gibt es noch viel mehr. :mrgreen:


110022 - Do 26.02.09 23:36

das klingt jetzt irgendwie so, alsob ich was zusätzliches brauche um etwas aus den dateien zu lesen.....


Was würdest du mit denn für zip empfehlen?
ich blicke da nicht durch^^


jaenicke - Do 26.02.09 23:46

Das erste würde ich empfehlen, das ist am einfachsten, wenn auch für deine Zwecke vielleicht überdimensioniert.

Du könntest natürlich auch einfach Jpegs benutzen (die sind ja schon klein und komprimiert) und hintereinander in einem Stream speichern und laden, dann brauchst du dich gar nicht um Komprimierung / Dekomprimierung kümmern.

Dieser Stream kann auch direkt an die Exe angehängt sein, zum Beispiel hiermit:
http://www.delphi-library.de/viewtopic.php?p=545198


110022 - Do 26.02.09 23:49

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Das erste würde ich empfehlen, das ist am einfachsten, wenn auch für deine Zwecke vielleicht überdimensioniert.

Du könntest natürlich auch einfach Jpegs benutzen (die sind ja schon klein und komprimiert) und hintereinander in einem Stream speichern und laden, dann brauchst du dich gar nicht um Komprimierung / Dekomprimierung kümmern.

Dieser Stream kann auch direkt an die Exe angehängt sein, zum Beispiel hiermit:
http://www.delphi-library.de/viewtopic.php?p=545198


jpgs nuten?
ist ne gute idee

Wie mache ich das denn, die in einen Stream speichern?


Sowas hatte ich noch nie^^
Îch kapiers nicht :?:
Kannst du mir das vllt mal einfach erklären wie ich die 6 Bilder dazu packe?


jaenicke - Fr 27.02.09 00:19

Du packst die Größe der ersten Datei in eine Integervariable und speicherst diese in den Stream (WriteBuffer), dann die Datei hinterher (CopyFrom).
Das wiederholst du für alle 6 Dateien.

Beim Auslesen liest du jeweils zuerst die Größe aus, danach kopierst du die Datei aus dem Stream heraus und lädst diese.
Auch das wiederholst du für alle 6 Dateien.

Eine Einführung in das Thema Streams allgemein findest du hier:
http://www.delphi-treff.de/tutorials/datenspeicherung/streams/page/1/