Zadatak iz C++ - extrakcija datoteka

poruka: 17
|
čitano: 5.571
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Zadatak iz C++ - extrakcija datoteka

Koristenjem C++ jezika treba napisati mali program za ekstrakciju datoteka iz .DEB (Debian file format) formata.

Ima li i'ko kakvih ideja ?

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Zadatak iz C++ - extrakcija datoteka

To nece biti bas malen program ako moras pisati i algoritme za rad sa zip kompresijom. Ako mozes koristiti tudje biblioteke za rad sa komprimiranim datotekama onda ce biti daleko manji program.

Pathogenic fundamentals clearly indicate that homogenous populations are most vulnerable.
16 godina
neaktivan
offline
Zadatak iz C++ - extrakcija datoteka

hm. pa mislim da je "sve" dozvoljeno...

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Zadatak iz C++ - extrakcija datoteka

Onda si prouci zlib biblioteku i rad s njom.

Pathogenic fundamentals clearly indicate that homogenous populations are most vulnerable.
16 godina
neaktivan
offline
RE: Zadatak iz C++ - extrakcija datoteka

Jel trebam nešto skinut s tog sajta ?

15 godina
odjavljen
offline
RE: Zadatak iz C++ - extrakcija datoteka

Jep,zlib.dll odnsono potreban library

17 godina
offline
RE: Zadatak iz C++ - extrakcija datoteka
gamecoder kaže...

Koristenjem C++ jezika treba napisati mali program za ekstrakciju datoteka iz .DEB (Debian file format) formata.

Ima li i'ko kakvih ideja ?

rješenje zadatka koji si dobio u natječaju za posao programera tražiš na forumu?!

divno...

kako ćeš onda rješavati probleme na poslu, ako ga dobiješ?

17 godina
offline
RE: Zadatak iz C++ - extrakcija datoteka
sasa kaže...
gamecoder kaže...

Koristenjem C++ jezika treba napisati mali program za ekstrakciju datoteka iz .DEB (Debian file format) formata.

Ima li i'ko kakvih ideja ?

rješenje zadatka koji si dobio u natječaju za posao programera tražiš na forumu?!

divno...

kako ćeš onda rješavati probleme na poslu, ako ga dobiješ?

Pa vjerojatno opet na forumu Cool

Cypher: Ignorance is bliss.
17 godina
offline
Zadatak iz C++ - extrakcija datoteka

Da, taman sam htio reci da koristis gotove biblioteke za unzip. Googlaj, naci ces milijardu exampleova na netu.

I'm going woo woo
 
0 0 hvala 0
15 godina
protjeran
offline
Zadatak iz C++ - extrakcija datoteka

U ovom slučaju library su nepotrebni. Bolje prouči kako .deb file format izgleda strukturno i ne trebaš ni zlib ni ništa drugo.

 

p.s. unzip nema veze sa .deb ilivamga ar file formatom.

Sir Crapsalot.
Poruka je uređivana zadnji put uto 21.9.2010 16:44 (Buffer Overflow).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Zadatak iz C++ - extrakcija datoteka

Proučio sam malo .deb na Wikipediji... No, još uvijek ne znam riješit zadatak.

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Zadatak iz C++ - extrakcija datoteka
Buffer Overflow kaže...

U ovom slučaju library su nepotrebni. Bolje prouči kako .deb file format izgleda strukturno i ne trebaš ni zlib ni ništa drugo.

 

p.s. unzip nema veze sa .deb ilivamga ar file formatom.

Ako sam dao pogresnu informaciju onda se ispricavam, za preporuku zlib-a sam dosao na ideju zbog ovoga (wikipedia citat), osobno nikada nisam radio sa .deb formatom. .rpm mi je puno poznatiji:

 

Debian packages are standard Unix ar archives that include two gzipped, bzipped or lzmaed tar archives: one that holds the control information and another that contains the data.

Pathogenic fundamentals clearly indicate that homogenous populations are most vulnerable.
Poruka je uređivana zadnji put uto 21.9.2010 23:03 (rustweaver).
17 godina
moderator
offline
RE: Zadatak iz C++ - extrakcija datoteka
gamecoder kaže...

Proučio sam malo .deb na Wikipediji... No, još uvijek ne znam riješit zadatak.

Sve ti pise: http://en.wikipedia.org/wiki/Ar_%28Unix%29

 

Kaze: Global header - The global header is a single field containing the magic ASCII string "!<arch>" followed by a single LF control character.

Globalni header u pravilu mozes ignorirat - znaci citas znak po znak dok ne dodjes do znaka za LF (to ti je 0Ahex iliti 10dec). Ja sam recimo za test skinuo neki fajl swiftfox_3.6.10-1_i686.deb i on u prvih 72 bajta drzi taj globalni header - znaci, kod te datoteke jednostavno bi odbacio prva 72 bajta (osim, naravno, ako i taj header ne moras za nesto iskoristiti).

 

 

Kaze dalje: File header - The common format is as follows. - i onda ti da tablicu od kojeg do kojeg bajta imas koju vrijednost. I tu bi isto trebalo biti sve jasno.

 

 

Uzmi si neki hex. editro (recimo Frhed) i njime otvori .deb datoteku. I otvori .deb datoteku nekim arhiverom, poput 7-zip. Je li sad sve jasno? Samo si moras povezati ono sto vidis u 7-zipu, Frhedu i informaciju o File headeru na Wikipediji.

 

Ako nakon ovih informacija neces znati rijesiti zadatak - onda si promasio profesiju. Namigiva

15 godina
protjeran
offline
Zadatak iz C++ - extrakcija datoteka

Header ti treba kao kod svake arhive. U headeru postoji magic odnosno <!arch> koji treba provjeriti da li postoji, jer ako ne postoji nije .deb format. Pa imaš još važnih informacija u headeru koje treba provjeriti, kao group owner, owner, verzija itd. Nakon toga treba čitati datoteku liniju po liniju ii naći control.tar i data.tar. Itd itd.

 

 

Ali slažem se ako ne možeš iskoristiti podatke iz wiki onda nisi za tu profesiju.

Sir Crapsalot.
Moj PC  
0 0 hvala 0
17 godina
moderator
offline
RE: Zadatak iz C++ - extrakcija datoteka
Buffer Overflow kaže...

Header ti treba kao kod svake arhive. U headeru postoji magic odnosno <!arch> koji treba provjeriti da li postoji, jer ako ne postoji nije .deb format.

Istina - totalno sam to smetnuo s uma. Osmijeh

 

Buffer Overflow kaže...

Pa imaš još važnih informacija u headeru koje treba provjeriti, kao group owner, owner, verzija itd. Nakon toga treba čitati datoteku liniju po liniju ii naći control.tar i data.tar. Itd itd.

Rijec je o binarnoj datoteci tako da citanje linije po linije ne dolazi u obzir. Datoteke unutar .deb ne treba traziti - header za prvu datoteku je odmah iza glavnog headera, a header druge datoteke se nalazi na poziciji pocetka prve datoteke + duljini prve datoteke.

15 godina
protjeran
offline
RE: Zadatak iz C++ - extrakcija datoteka
mbaksa kaže...

Rijec je o binarnoj datoteci tako da citanje linije po linije ne dolazi u obzir. Datoteke unutar .deb ne treba traziti - header za prvu datoteku je odmah iza glavnog headera, a header druge datoteke se nalazi na poziciji pocetka prve datoteke + duljini prve datoteke.

Vrlo krivo. Što ako je datoteka velika? Što ako je oštećena? Kako ćeš to saznati? Iz while petlje? yeah right.

 

 

Vidiš, nije dobro pametovati Poljubac

Sir Crapsalot.
17 godina
moderator
offline
RE: Zadatak iz C++ - extrakcija datoteka
Buffer Overflow kaže...
mbaksa kaže...

Rijec je o binarnoj datoteci tako da citanje linije po linije ne dolazi u obzir. Datoteke unutar .deb ne treba traziti - header za prvu datoteku je odmah iza glavnog headera, a header druge datoteke se nalazi na poziciji pocetka prve datoteke + duljini prve datoteke.

Vrlo krivo. Što ako je datoteka velika? Što ako je oštećena? Kako ćeš to saznati? Iz while petlje? yeah right.

Zbilja mi nije jasno o cemu govoris. Ko da zapravo kontriras svojoj poruci, a ne mojoj.

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice