.[ ČeskéHry.cz ].
Archív :: ZIP
Jdi na stránku 1, 2, 3, 4, 5  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
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ň

PříspěvekZaslal: 28. duben 2011, 20:58:30    Předmět: Archív :: ZIP Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 28. duben 2011, 21:18:04    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 28. duben 2011, 21:26:07    Předmět: Odpovědět s citátem

No, aby to nebylo ani jako statická ani jako dynamická knihovna...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 28. duben 2011, 21:29:53    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
franz



Založen: 30. 07. 2007
Příspěvky: 1325

PříspěvekZaslal: 28. duben 2011, 21:42:28    Předmět: Odpovědět s citátem

Tuším Quake3 měl data v zip balíku, pohledal bych v jeho zdrojácích Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 28. duben 2011, 22:10:00    Předmět: Odpovědět s citátem

Zlib mi něco říká, trochu jsem na to už koukal...

Na toho Quaka bych mohl juknout... Wink

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Houp



Založen: 28. 07. 2007
Příspěvky: 672

PříspěvekZaslal: 28. duben 2011, 22:19:45    Předmět: Odpovědět s citátem

když se zadá zipopen do google : http://doc.pcsoft.fr/en-US/?3082044

Ale to ti asi nepomůže.
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 28. duben 2011, 22:26:45    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 28. duben 2011, 22:28:00    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 28. duben 2011, 22:31:15    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 28. duben 2011, 22:51:15    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 28. duben 2011, 22:56:31    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 28. duben 2011, 23:02:01    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 28. duben 2011, 23:06:47    Předmět: Odpovědět s citátem

viz contrib/minizip: http://www.zlib.net/zlib_faq.html#faq11
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 28. duben 2011, 23:18:02    Předmět: Odpovědět s citátem

No, to je zhruba to co jsem potřeboval... Wink
Tak uvidíme co s tím provedu...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2, 3, 4, 5  Další
Strana 1 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna