- Poruka
- 171
Kod:
POLJE 1 POLJE 2 POLJE 3 . . .
KOLONA 1 stavka stavka stavka
KOLONA 2 stavka stavka stavka
. . . . . .
Radi se o 1 polju, jer je u pitanju 1-bitna baza. Svaka stavka ima ili jednu ili drugu od 2 vrednosti (recimo 1 i 0).
1 Bajt nosi 8 polja. To bi znacilo da bi tabela od 1024 polja imala 128 bajtova.
Bajt moze da prikaze jednu od 256 vrednosti. Ako bajt predstavimo sa B256 tabela bi snimljena u fajlu izgledala ovako: B256 B256 B256 B256 B256 B256 . . . pre ovih bajtova postojao bi "count" ili "sizeof" ili "lenght" (kako ocete) bajt, koji predstavlja broj stavki u tabeli, kojeg bi program prvog ucitao da bi znao kolko posle da cita. Ali to je manje bitno sad.
Treba mi kod koji ce razbiti bajt u 8 bitova, to jest, omoguciti mi da tumacim 1 bajt (vrednost od 0 do 255) u 8 vrednosti (0|1 0|1 0|1 0|1 ...)... odnosno, algoritam.
Dalje, treba mi forumula za racunanje broja mogucih kombinacija u brojevnom sistemu sa n cifara za nc kodnih mesta, u koliko su sva kodna mesta popunjena.
Broj cifara: (dekadni) 10, (binarni) 2, (oktalni) 8...
Kodno mesto: (broj) 10 1 = kodno mesto 1, 0 = kodno mesto 2. Broj 321: kodno mesto 1 = 3, kodno mesto 2 = 2, kodno mesto 3 = 1. Kodna mesta su mesta za broj.
Dakle, treba mi recimo (primer) info. o tome koliko je mogucih kombinacija razlicito rasporedjenih 1 i 0 u binarnom broju sa 8 kodnih mesta, koliko sa 4, itd... znaci, treba formula a ne konkretan podatak. Hvala vam.
___ ___ ___ ___ ___ ___ ___ ___ ___ ___
evo za sta ce mi to:
Pravim .dll koji obavlja poslove oko unosa podataka u konzolu. E sad, tu ima naprednijih malo mogucnosti (boje slova, ne dozvoljavanje da se unesu brojevi/slova (ako treba samo brojeve pisati), ne dozvoljavanje korisniku da unese vise cifara/slva nego sto je fixed lenght of that text box, auto-complete (ako ukucam M da mi ponudi "OV" da bi bilo "MOV" (lupam primer), auto-correct, correct-case, trimming (brisanje suvisnih space-ova), editovanje, copy-paste, menjanje insertation point-a itd.), i koji ce mi biti spreman da mi bude pri ruci kad god pozelim da napravim nesto i skracivati mi vreme jer ga vec imam gotovog.
Najveci mi je problem oko toga da ocu kad ukucam 1 2 3 slova on odma ponudi sa strane u jednom delu konzole "informacije o tome sta mogu napisati/sta sam vec pisao" tj. kao auto-komplit. Pretraga klase koja cuva te podatke o tome bi trebala biti djavolski brza, a optimizovana za to da program nikad ne prekoraci 1 Mb memorije. Ono sto pravi najvecu zabunu je sto bi postojala jedna don't allow error komponenta, koja ti brani da uneses nesto sto nebi bio validan podatak. Recimo, kad bih uneo "M" (a moguce reci su MIX i MOVE) to mi nebi dozvolilo da unesem posle M nista drugo osim ili I ili O, ako ukucam X sve bi izgledalo kao da nista nisam ukucao.
E sad, da bih napraivo tu komponentu, koja je opcionalna (ne mora se koristiti za svaki Text Box, imalo bi verzija koje su brze, ali je ne podrzavaju, optimizacija itd...) trebao bih imati referencu na neku tablu koja "zna" sta sledece mogu da napisem, a sta ne... i puni neki class podacima o tome sta nije dozvoljeno cim joj se prosledi ono sto sam do sada ukucao, a taj drugi class opet brani unos nepravilnih podataka.
Za "taj drugi klass" bih stavio nesto ovako, sto ima tacno ovakvu tabelu: 32 bajta (od kojih svaki bit znaci 'da li je slovo sa tim ANSI kodom dozvoljeno uneti', dje je "taj asni kod" u stvari offset bita u bitovima od pocetka tabele (recimo u 4tom bajtu od pocetka tabele, 8 bit bi signalizovao da li je space bar dozvoljeni pritisnuti, posto je ANSI kod za space = 32). Dalje, u istoj tabeli bi zatim bilo posle ta 32 jos 128 bajtova, od kojih bi svaki redom predstavljao "koja slova je nedozvoljeno pritisnuti", radi nekih drugih opcija, to jest, sadrzao bi iste informacije kao i ona tabla od 32 bajta, s tim sto je ova sad bolja za nesto, a ona je bila bolja (brza) za nesto drugo. Izmedju ove 2 table bi bio jedan bajt koji indicira "da li je vise znakova dozvoljeno ukucati nego sto je nedozvoljeno ili je vise nedozvoljeno nego sto je dozvoljeno", pa bi prema tome u slucaju da je on postavljen (vise je nedozvoljeno) tabla od 128 bitova oznacavala samo "sta je dozvoljeno" (obrnuto od gornjeg slucaja). Tako bi informacije o tome koji se od 256 mogucnosti (znakova) smeju uneti stala u samo 128 bajtova + 1 prekidac (ovaj sto znaci cega je vise).
Svaki bajt u toj tabeli koji je postavljen bi sadrzao broj (ANSI kod) znaka koji je dozvoljen/nedozvoljen, a bajtovi bi bili poredjani jedan do drugog.
Ta tabela od 128 bajtova bi sluzila za prikazivanje auto-complete liste, tj. da ga ubrza... al to je sad duga prica.
OVAJ DRUGI DEO NE MORATE CITATI