ZIP Datei in den Speicher einlesen
ZIP Datei in den Speicher einlesen
Gibt es eine (halbwegs einfache\verständliche) möglichkeit einen vorhandene ZIP Datein in den Speicher zu laden ?
ZIP Datei ( beispiel.zip )
Inhalt
- beispiel.txt
-- Inahlt der Beispiel.txt
--- "123456789"
Nun möchte ich ohne die ZIP datei vorher irgendwo auf dem Computer zu entpacken an den Datein INhalt, ich möchte einfach nur den Inhalt der Datei herausfinden.
Also 123456789
Ich benütze die PureZIP library, bin aber für jede alternative zu haben.
ZIP Datei ( beispiel.zip )
Inhalt
- beispiel.txt
-- Inahlt der Beispiel.txt
--- "123456789"
Nun möchte ich ohne die ZIP datei vorher irgendwo auf dem Computer zu entpacken an den Datein INhalt, ich möchte einfach nur den Inhalt der Datei herausfinden.
Also 123456789
Ich benütze die PureZIP library, bin aber für jede alternative zu haben.
- 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
Re: ZIP Datei in den Speicher einlesen
PureZip kanns bestimmt auch, aber das hab ich nicht zur Verfügung.
Mit Minizip bekommste die Infos durch eine Kombination von ZIP_GetFilesCount, ZIP_GetFileInfo
Wenn Du auch den Inhalt benötigst, dafür ist ZIP_CatchFile verantwortlich.
Gruß
Thomas
Mit Minizip bekommste die Infos durch eine Kombination von ZIP_GetFilesCount, ZIP_GetFileInfo
Wenn Du auch den Inhalt benötigst, dafür ist ZIP_CatchFile verantwortlich.
Gruß
Thomas
Re: ZIP Datei in den Speicher einlesen
Ich wusste doch das es auch von dir soetwas gab, nur wusste ich den Namen nicht mehr, danke werde mich damit auseinander setzen.
- 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
Re: ZIP Datei in den Speicher einlesen
findeste hier: http://www.realsource.de/downloads/doc_ ... nizip.html
Zumindest als Include funktionierts auch mit PB4.40, als UserLib hab ichs noch nicht getestet.
Gruß
Thomas
Zumindest als Include funktionierts auch mit PB4.40, als UserLib hab ichs noch nicht getestet.
Gruß
Thomas
Re: ZIP Datei in den Speicher einlesen
With PureZIP, you can use PureZIP_Archive_ExtractMem(*MemoryBank, MemoryBankSize.l) .
Open the archive with PureZIP_Archive_Read(), parse it with PureZIP_Archive_FindFirst()/PureZIP_Archive_FindNext() , get the file information with PureZIP_Archive_FileInfo() and use PureZIP_Archive_ExtractMem() to extract the archived file to a memory bank.
Open the archive with PureZIP_Archive_Read(), parse it with PureZIP_Archive_FindFirst()/PureZIP_Archive_FindNext() , get the file information with PureZIP_Archive_FileInfo() and use PureZIP_Archive_ExtractMem() to extract the archived file to a memory bank.
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
Re: ZIP Datei in den Speicher einlesen
thx for the different ways, ill try them all when im back home on my pc during the week.[@twice]
Re: ZIP Datei in den Speicher einlesen
I tryed a little bit with the samples in the helpfile, but without success
EDIT
sehe grad das ich wirklich keine Ahnung von der ganzen Memory sache habe
EDIT 2
Das hier liefert zwar keinen Fehler aber es gibt nichts zurück .... 

Code: Alles auswählen
MyZIP.s = "C:\Users\Andreas\Desktop\XSX\try.zip"
PureZIP_Archive_Read(MyZIP.s)
*Memory_ZIP = AllocateMemory(10000)
For i = 0 To PureZIP_GetFileCount(MyZIP)-1
If PureZIP_GetFileInfo(MyZIP, i, @myFileinfo.PureZIP_FileInfo)
Debug "Number " + Str(i)
Debug "Filename: " + myFileinfo\FileName
PureZIP_Archive_ExtractMem(@*Memory_ZIP, 10) ; <-- wie finde ich die Länge raus ohne die Datei vorher zu entpacken ?
; how can i find out the length of the file without open or extract the file ?
If *Memory_ZIP
Debug PeekS(*Memory_ZIP, 10)<--- ; Error
EndIf
EndIf
Next
sehe grad das ich wirklich keine Ahnung von der ganzen Memory sache habe

EDIT 2
Code: Alles auswählen
MyZIP.s = "C:\Users\Andreas\Desktop\XSX\try.zip"
PureZIP_Archive_Read(MyZIP.s)
*Memory_ZIP = AllocateMemory(1000)
*Pointer = *Memory_ZIP
For i = 0 To PureZIP_GetFileCount(MyZIP)-1
If PureZIP_GetFileInfo(MyZIP, i, @myFileinfo.PureZIP_FileInfo)
Debug "Number " + Str(i)
Debug "Filename: " + myFileinfo\FileName
PureZIP_Archive_ExtractMem(@*Pointer, 10) ; <-- wie finde ich die Länge raus ohne die Datei vorher zu entpacken ?
; how can i find out the length of the file without open or extract the file ?
If *Memory_ZIP
Debug MemorySize(*Memory_Zip)
Debug PeekS(*Memory_ZIP, 10)
EndIf
EndIf
Next

- 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
Re: ZIP Datei in den Speicher einlesen
Code: Alles auswählen
XIncludeFile "minizip_include.pbi"
EnableExplicit
Define MyZIP.s
Define info.unz_file_info
Define i
Define *mem
MyZIP.s = "c:\Users\Thomas\Downloads\TsiInclude.zip"
For i = 1 To ZIP_GetFilesCount(MyZIP)
If ZIP_GetFileInfo(MyZIP, i, @info)
Debug "Number " + Str(i)
Debug "Filename: " + info\FileName
*mem = ZIP_CatchFile(MyZIP, i)
If *mem
Debug "FileSize: " + Str(info\uncompressed_size)
Debug "MemorySize: " + Str(MemorySize(*mem))
Debug "====================="
FreeMemory(*mem)
EndIf
EndIf
Next
Re: ZIP Datei in den Speicher einlesen
Danke dafür, aber den Inhalt der Datei habe ich damit ja auch noch nicht.
- 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
Re: ZIP Datei in den Speicher einlesen
Verstehe nicht, der Inhalt befindet sich doch in *mem mit der größe von MemorySize(*mem), den kannste dochX360 Andy hat geschrieben:Danke dafür, aber den Inhalt der Datei habe ich damit ja auch noch nicht.
zum Beispiel mit PeekS anzeigen, wenns Text ist oder mit CatchImage(0, *mem, MemorySize(*mem)) wenns ein
Bild ist, usw. Kannste auch als Datei auf Platte schreiben oder was auch immer, was fehlt denn jetzt noch?