Mozda sam bio malo konfuzan prilikom prvog javljanja pa:
Citat:
zi::: Stanje na brojacu ce ti zauzeti isto toliko mesta kao i sam file, pa je bolje da ga zipujes ;)
Kao "brojac" istancovanih fajlova od strane generatora mislim da bi mogla da se iskoristi bilo koja "jaca" varijabla tipa Double, Extended. Broje do1.1*10^4932 tj. to je zapis od 19-20 cifara, a zauzima 10 bajtova na disku i to bi bilo sacuvano u kompresovanom fajlu kao drugi podatak (pored duzine fajla).
Citat:
jablan:
Uzgred, brojač bi u trenutku kad pronađe dati fajl bio identičan tom fajlu, jer svaka sekvenca bajtova nije ništa drugo nego "brojač" same sebe.
Ovde se mozda nismo najbolje razumeli. Nisam pominjao da brojac "trazi" ili "pronalazi" dati fajl. U ovoj poruci sam objasnio sta podrazumevam pod brojacem. Kod mene generator je taj koji stancuje fajlove po redu i ciji bi se sadrzaj u odredjenom trenutku poklopio sa sadrzajem pocetnog fajla. Ako bi bio konstruisan onako kako ja mislim da bi mozda moglo tj. kao string boolean varijabli zauzimao bi i vise nego pocetni fajl tj. posto je boolean verijabla velicine 1 bajt tj. 8 bita, generator bi u trenutku pronalazenja zadatog fajla zauzimao 8 puta vise tj. za svaki bit jos 8 bitova, ali to je samo priveremeno. Kad odrade posao i generator i brojac se brisu i ostaje samo zapis kompresovanog fajla koji je dovoljan da se fajl kasnije regenerise tj. dekompresuje u ovom slucaju ponovo napravi.
Citat:
jablan: Trebalo je da pustite čoveka da iskodira. Ne bi ga napravio, ali bi se malo trenirao. :)
Nije dosta sto sam otkrio resenje, sad jos i da kodiram? ;)
Napravicu ako se bas niko ne prihvati posla ali sa mojim znanjem Delphi-ja to ce biti dugooootrajan proces.
Citat:
caboom: po Szasz-u se ovo naziva shizofrenija...
Ne, nego Vera.
Dakle jos jednom ali natenane:
Hocu da kompresujem fajl npr: 11010010
Na osnovu duzine fajla (8) program mi pravi generator koji stancuje sve redom fajlove duzine 8 bita
00000000
00000001
..
Brojac (varijabla) ih broji.
U trenutku kad generator istancuje fajl 11010010 zapisujem da je to npr. 175-ti fajl po redu.
Zapis kompresovanog fajla izgleda otprilike ovako 8/175 sto mi je dovoljno da fajl kasnije "regenerisem" tj. ponovo napravim po sledecem postupku:
Program iscita kompresovani fajl 8/175 napravi generator, pusti ga u rad i zaustavi kod 175 tog po redu fajla koji ovaj izgenerise - sto je ujedno i moj pocetni fajl.
U ovom primeru naravno nismo imali kompresiju jer 8 bita zauzima manje mesta od zapisa 8/175 (40 bita) ali kod vecih fajlova?
Vec fajl velicine oko 1KB zapisujem npr: kao 8976/2^6000 + 274 sto je zapis koji zauzima 136 bita. Dakle umesto 8976 bita - 136 bita
itd..
Sa jos vecim fajlovima jos vece iskoriscenje..
Nemoj da pricas?