Seite 1 von 2

Gepackte Dateien Lesen

Verfasst: 08.08.2009 21:52
von Raphi
Hallo, kann mir jemand sagen ob und wie man Gepackte Dateien Lesen kann, ohne diese zu Entpacken?

Verfasst: 08.08.2009 22:00
von ts-soft

Code: Alles auswählen

If ReadFile(0, "gepacktedatei.bin")
  *mem = AllocateMemory(Lof(0))
  If *mem
    ReadData(0, *mem, Lof(0))
  EndIf
  CloseFile(0)
EndIf

Verfasst: 08.08.2009 22:01
von Kaeru Gaman
grundsätzlich: garnicht.

... du musst sie zumindest im speicher entpacken.

also, wenn du ein gepacktes Archiv hast, hast du infos über die einzelnen Dateien enthalten,
dann kannst du diese einzeln laden und entpacken.

manche Pack-Libs stellen dafür schon Funktionen zur Verfügung, dass es an der Oberfläche so wirkt,
als würdest du gepackte Dateien klar betrachten, aber ein eigentliches Entpacken ist grundsätzlich immer nötig.

PS:
so wie ts das sagt, liest du halt die gepackten Daten, nicht die Eigentlichen.

Verfasst: 09.08.2009 11:37
von kswb73
Es kommt darauf an wie die Dateien gepackt sind und wie du sie entpacken willst. Verwendest du irgendein Libary musst du nachsehen ob sie dies Unterstützt. Benutz du eine selbstgeschriebene Funktion, kannst du sie sicher abändern. Wichtig ist nur dass das Format dies auch zulässt. Wie genau Dateien allerdings gepackt werden, kan nich dir nicht sagen.

Verfasst: 09.08.2009 12:00
von ts-soft
> Es kommt darauf an wie die Dateien gepackt sind und wie du sie entpacken willst
Er will sie nicht entpacken, nur lesen. Sinn und Zweck des lesens einer
gepackten Datei entzieht sich mir gänzlich :mrgreen: , aber trotzdem
solltet Ihr auf seine unsinnige Frage eingehen und nicht versuchen diese
zu korrigieren und Dinge hineinzuinterpretieren, die hier nicht stehen.

Seine Frage korrigieren muß er schon selber machen, ansonsten steht die
Lösung in meiner ersten Antwort :twisted:

Verfasst: 09.08.2009 12:32
von cxAlex
[ot]
kswb73 hat geschrieben:Wie genau Dateien allerdings gepackt werden, kan nich dir nicht sagen.
http://de.wikipedia.org/wiki/Shannon-Fano-Kodierung
http://de.wikipedia.org/wiki/Arithmetisches_Kodieren

Einfache Komprimierungsmethoden die man auch leicht mit PB umsetzen kann. Falls es jemanden interessiert.

Gruß, Alex

[/ot]

Verfasst: 09.08.2009 15:05
von Raphi
Ich habe die Dateien in Pure Basic mit

Code: Alles auswählen

CreatePack()
und

Code: Alles auswählen

AddPackFile()
erstellt und weis jetzt nicht richtig wie ich diese wieder verwenden kann?

Verfasst: 09.08.2009 15:16
von Kaeru Gaman
http://www.purebasic.com/german/documen ... npack.html

... auch auf die Gefahr hin, dass dem deutschen Forum wieder Anfänger-Unfreundlichkeit vorgeworfen wird:

1. Bitte auch die Hilfe lesen
dieses Kapitel war alles Andere als unauffindbar.

2. bitte Fragen ausführlich formulieren.
von deinem ersten Posting ausgehend ist wirklich niemand drauf gekommen, dass du über die verwendung der PB-nativen Packer-Lib sprichst.

Verfasst: 09.08.2009 15:43
von Raphi
Danke, es klappt!

Nun würde mich noch interresieren, wie man mit Puer Basic
Bilder, Sounds, exen ... in ein externes DLL einfügt und wieder liest?

Verfasst: 09.08.2009 15:52
von ts-soft
Der einfache Weg wäre mit IncludeBinary und den Catchbefehlen.
Diese DLL wäre aber nur für PB Programme nützlich.

Für Windows würde sich ein Resource-Script empfehlen und entweder dieses
Skript in den Compileroptionen hinzufügen oder das kompilierte Script
importieren. Für Anfänger aber eher ungeeignet. Auch die Nutzung würde
dann nur mit API möglich sein.

Als Resource in einer DLL könnte man auch als Anfänger bewältigen, wenn
man sich mal mit dem PureDataConvertor auseinandersetzt

Gruß

Thomas