Gepackte Dateien Lesen

Anfängerfragen zum Programmieren mit PureBasic.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Gepackte Dateien Lesen

Beitrag von Raphi »

Hallo, kann mir jemand sagen ob und wie man Gepackte Dateien Lesen kann, ohne diese zu Entpacken?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag 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.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag 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]
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag 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?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag 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?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten