Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 28. duben 2011, 20:58:30 Předmět: Archív :: ZIP |
|
|
Zdravím,
to by nebylo, abych stále něco neřešil...
Hraju si s archívním systémem a pořád nejsem spokojen. Je to příliš pomalé (kvůli šifrování) a strašně neohebné.
Začal jsem uvažovat o použití ZIP jako archívu pro data. Jen nemůžu najít nic, co by mi vyhovovalo.
Neznáte něco? Nejlépe multiplatformní a hlavně aby to nebyla knihovna. Třebas takhle nainkludovat něco jako ZIP.h (a mít ZIP.cpp) a nic víc k tomu...
A ideálně abych si pouze požádal o soubor, který chci číst z toho archívu a on mi vrátí pointer na FILE (samozřejmě otevřený). To by se mi fakt moc líbilo...
Pokud nic takového neznáte, tak bych s Vaší pomocí to zkusil nákodit sám...
Tak díky za pomoc. _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
perry
Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 28. duben 2011, 21:18:04 Předmět: |
|
|
Myslíš něco jako Virtuální souborový systém (VFS) ? Ale moc nechápu to "aby to nebyla knihovna"...
Třeba od zip, 7z apod komprese lze dohledat zrdrojové c++ kódy... u RARu je to trochu horší s použitím kvůli licenci. _________________ Perry.cz |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 28. duben 2011, 21:26:07 Předmět: |
|
|
No, aby to nebylo ani jako statická ani jako dynamická knihovna... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 28. duben 2011, 21:29:53 Předmět: |
|
|
Už jsi slyšel o zlib?
Jinak rovněž nechápu, co si představuješ pod pojmem "knihovna" (znovupoužitelný kód?) a co ti na knihovnách vadí.
frca _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
|
franz
Založen: 30. 07. 2007 Příspěvky: 1325
|
Zaslal: 28. duben 2011, 21:42:28 Předmět: |
|
|
Tuším Quake3 měl data v zip balíku, pohledal bych v jeho zdrojácích |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 28. duben 2011, 22:10:00 Předmět: |
|
|
Zlib mi něco říká, trochu jsem na to už koukal...
Na toho Quaka bych mohl juknout...
Mě by úplně stačilo, kdyby tam byla jedna jediná funkce, ekvivalent k fopen (třeba zipopen) s tím, že to otevře soubor v ZIPu...
EDIT: Pak bych to spojil s tím co už mám a byl by z toho VFS... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 28. duben 2011, 22:26:45 Předmět: |
|
|
Lepší by bylo něco jako:
kód: |
FILE *file = zipopen("archive.zip", "file01.txt"); |
nebo
kód: |
FILE *file = zipopen("archive.zip/file01.txt"); |
nebo také
kód: |
FILE *file = zipopen("archive.zip", "dir/file01.txt"); |
nebo
kód: |
FILE *file = zipopen("archive.zip/dir/file01.txt"); |
A mód samozřejmně "rb"... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 28. duben 2011, 22:28:00 Předmět: |
|
|
Použij Zlib a ten fopen si zvládneš udělat sám.
Ale zapomeň na nějaké šifrování, stejně ti to hackne skoro kdokoliv. A grafický data jde velmi snadno získat z 3D API, typicky přes OpenGL nebo Direct3D debuggery, takže to tvoje šifrování je od začátku k hovnu. Přes PIX (pro Direct3D) nebo ApiTrace (pro OpenGL) jde kompletně nahrát posloupnost GL či D3D příkazů, uložit do souboru včetně všech grafických dat, shaderů atd. a přehrát ji později skoro jako video, už ale bez hry atd. A to ještě nevíš, že některé drivery mají v sobě vzdálený debugger, na který se můžeš 'za běhu' připojit ze vzdálenýho PC a stahovat si textury a dělat různé kejkle atd.... no ale zpět k tématu.
Jediný smysl používání komprimovaných archivů ve hrách je rychlejší loadování. Čtení z disku je totiž mnohem pomalejší než dekomprese. Použitím ZIP archivu můžeš dosáhnout třeba 2x, 3x, či 4x rychlejšího loadingu, ale používej to u věcí, které ti dají dobrý kompresní poměr (nekomprimuj JPEGy atd.) _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 28. duben 2011, 22:31:15 Předmět: |
|
|
No, mě nejde ani tak o kompresi jako o to, abych měl všechny zdroje pohromadě v jednom souboru...
EDIT: A už mě nebaví si dělat archivátor, protože zaarchívovat několik souborů do ZIP je mnohem snažší... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 28. duben 2011, 22:51:15 Předmět: |
|
|
Možná, že ten zlib bude moudrá volba, ale zatím jsem nějak nepřišel, jak z toho vytáhnout nějaký filelist nebo vůbec, jak z toho dostat nějaký soubor... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 28. duben 2011, 22:56:31 Předmět: |
|
|
Zlib má jenom algoritmy na kompresi a dekompresi bufferu, do souboru si to už snad hodíš sám, ne? _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 28. duben 2011, 23:02:01 Předmět: |
|
|
Nechápu... Mám ZIP archív, uvnitř je nějaká adresářová struktura... a já chci z toho číst soubory...
To že to umí komprimovat a dekomprimovat je mi k ničemu... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 28. duben 2011, 23:18:02 Předmět: |
|
|
No, to je zhruba to co jsem potřeboval...
Tak uvidíme co s tím provedu... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
|