[ Kresoje @ 08.03.2007. 09:33 ] @
Postoji li mogucnost da se prosiri broj clanova skupa, koji je, ako se ne varam, ogranicen na 255 elemenata?
Problem mi resava i ako bi moglo da se izvede nesto kao Set of 400..500 sto pretstavlja dozvoljenih 100 elemenata.
[ morlic @ 09.03.2007. 09:10 ] @
Ogranicenje je da vrednosti budu u okviru 0-255. Znaci moras da resavas drugacije.
[ Kresoje @ 09.03.2007. 09:38 ] @
Hvala za odgovor. Probacu zaobilazno, na pr da vrednosti 0 - 255 budu indeksi clanova niza.
[ savkic @ 09.03.2007. 10:25 ] @
> Hvala za odgovor. Probacu zaobilazno, na pr da vrednosti 0 - 255 budu indeksi clanova niza.

Možeš pokušati i sa nizom bitova (TBits klasa). Ograničenje od 256 elemenata u skupu dolazi od načina implentacije, skupovne promenljive su 32 bajtne vrednosti (32 * 8 = 256) u kojoj je svaki element predstavljen jednim bitom.
[ Kresoje @ 12.03.2007. 09:41 ] @
Ne mogu da iskopam nista na temu niza bitova. Moze li neki najprostiji poluprimer?
[ savkic @ 12.03.2007. 13:46 ] @
> Ne mogu da iskopam nista na temu niza bitova. Moze li neki najprostiji poluprimer?

TBits klasa se koristi na dosta mesta u VCLu, pogledaj Menus, Buttons, DBTables...
[ viking13 @ 14.03.2007. 20:49 ] @
Smem li ja da postavim jedno glupo pitanje?

Da li tebi treba SKUP ili NIZ? (na jednom mestu piše jedno, na drugom drugo)

Ako ti treba niz, imaš brate ARRAY, pa stavi i 1000 elemenata ako hoćeš.
[ reiser @ 14.03.2007. 21:18 ] @
Teoretski... napravi niz od 255 elemenata tipa pointer, i svaki clan niza ce pokazivati na drugi niz nekog tipa, recimo Integer. Tako mozes dobiti 255 niza * 255 clanova = ukupno 65025 clanova.
[ priki @ 21.03.2007. 13:21 ] @
ako su u pitanju nizovi
mozes ga kreirati i dinamicki ako hoces i
onda mu samo podesis velicinu sa

SetLength();

primer

type
TPerica = record
Id : Integer;
Name: String;
end;

onda mu definises neku promenjivu, recimo ovako

fPerica: array of TPerica;

i onda se dalje igras kako hoces:
SetLength(fPerica, cdsPartneri.RecordCount);


[Ovu poruku je menjao priki dana 21.03.2007. u 15:06 GMT+1]