[ Aleksandar Ružičić @ 10.03.2008. 01:42 ] @
evo jos jedne genericke strukture podataka koja moze da vam zatreba za nesto.
u pitanju je dinamicki niz bilo kog tipa, razlog zbog koga sam napisao ovaj makro je sto je u UDT-u (user defined type, ili Type) moguce definisati samo staticke nizove kao clanove strukture.

fajl (dynarray.bas) je okacen uz poruku a evo kako se koristi:
Code:

#Include "dynarray.bas"

    DefineDynamicArrayType(Integer)
    
    
    Function PrintArray(ByRef Index As UInteger, Value As Integer) As Integer
    
        print "["; Index; "] = "; Value
            
    End Function 
    
    
    Dim a As IntegerArray
    
    a.add 12
    a.add 46
    a.add 123
    
    a.iterate @PrintArray
    
    Print
    
    a.remove 2
    
    a.iterate @PrintArray
    
    sleep

sto ce kao rezultat dati:
Code:

[0] =  12
[1] =  46
[2] =  123

[0] =  12
[1] =  46


novi tip uvodite sa DefineDynamicArrayType(<Tip Niza>) cime dobijate <Tip Niza>Array tip koji ima sledece metode/propertije:
Code:

Declare Function Add(Value As _TYPE_) As _TYPE_ Pointer
Declare Function Add As _TYPE_ Pointer
Declare Sub Remove(Index As UInteger)

Declare Sub ReDim(newSize As UInteger, preserveValues As Integer = 0)

Declare Property Item(Index As UInteger) As _TYPE_
Declare Property Item(Index As UInteger, Value As _TYPE_)

Declare Function PeekAt(Index As UInteger) As _TYPE_ Pointer

Declare Property ItemCount As UInteger

Declare Sub Iterate(iterator As _TYPE_##ArrayIterator, safe As Integer = Not 0)

ExpandFactor    As UInteger = 10 ' for how much items is array expanded when needed

za svaki clan strukture imate objasnjenje sta ta metoda/svojstvo radi (u dynarray.bas)

[Ovu poruku je menjao Aleksandar Ružičić dana 11.03.2008. u 04:05 GMT+1]
[ stefanpn @ 10.03.2008. 02:24 ] @
Lepo od tebe sto ljudima isporucujes ovako dobre primere i totalno sazvakan materiajl. Samo mozda bi mogao da sve ovo smestas u jednu temu pr. [FreeBASIC], pa kad nekom nesto zatreba da sve moze da pronadje na jednom mestu... A i ovako podeljene poruke ce brzo otici na dole, posto vecini ljudi koji posecuju VB i ASP i ne pada napamet da pogledaju ovo jer im odmah iz naslova nije jasno o cemu se radi. A i kasnije ako slucajno budes pisao neku knjigu ili nekakav materijal o FreeBasic-u, imaces sve na jednom mestu.

Prosecan posetilac VB i ASP-a kaze:
Implementacija steka pomocu duplo povezane liste - JEL SE TO MAZE NA HLEB!? Pa jos u freebasic-u, to mora da je neko fensi pakovanje!

Vidis i sam da je ta tema imala samo 18 pregleda(a od toga sam 5-6 ja napravio!), ali kada bi to slozio u celinu i jos ako bude dodato po nesto, to bi vec imalo smisla...

Pozdrav, i svaka cast za oba primera.
[ Shadowed @ 10.03.2008. 08:23 ] @
Citat:
stefanpn: Prosecan posetilac VB i ASP-a kaze:
Implementacija steka pomocu duplo povezane liste - JEL SE TO MAZE NA HLEB!? Pa jos u freebasic-u, to mora da je neko fensi pakovanje!

Ako to kaze onda je skoro sigurno da mu to i ne treba, taman da ne pravi saobracaj na serveru bez potrebe :)
Ali, slazem se da ne bi bilo lose napraviti jednu temu "strukture podataka u freebasic-u" na primer i tu stavljati primere a u prvoj poruci napraviti sadrzaj (i recimo opis sta je zapravo u toj temi).
[ Aleksandar Vasic @ 10.03.2008. 09:12 ] @
mozda cak i otvoriti podforum FreeBasic u forumu VB & ASP ;)
[ Aleksandar Ružičić @ 10.03.2008. 16:33 ] @
Citat:
The_End_is_close: mozda cak i otvoriti podforum FreeBasic u forumu VB & ASP ;)

pa to mi je i neki cilj :) tj zbog toga otvaram nove teme sa [FreeBASIC] u nazivu, istina je da VB6 polako odumire (vecina VB6 programera prelazi za .NET, a oni koji tek uci i da hoce ne mogu da nabave VB6) dok je pred FreeBASIC-om lepa buducnost (ima veoma aktivnu i pre svega kvalitetnu zajednicu). Zato kad se nakupi dosta FreeBASIC tema (recimo kada na prvoj strani bude bilo konstatno 6-7 tema vezanih za FreeBASIC) mozda pokrenem pitanje otvaranja novog podforuma u ES:Mods-ima, ali o tom potom... rekoh to mi je cilj, ali svestan sam da to i ako bude nekad, nece biti u skorijoj buducnosti...


@Eurora3D Team: kad dodjem sutra u bg skinucu ovo sto si radio pa cu pogledati, mada ne znam dal cu imati nesto mnogo vremena da se posvetim tome, jedva da imam vremena i za EliteTanks, al obcavam da cu baciti pogled.
[ Aleksandar Ružičić @ 11.03.2008. 03:04 ] @
sto se tice ovog dinamickog niza, otkrio sam da ima memory leak, jedva sam nasao de curi, ali evo sad je sredjeno :)
uploadovao sam fajl u prvoj poruci...
[ Eurora3D Team @ 11.03.2008. 12:47 ] @
Citat:
Aleksandar Ružičić: sto se tice ovog dinamickog niza, otkrio sam da ima memory leak, jedva sam nasao de curi, ali evo sad je sredjeno :)
uploadovao sam fajl u prvoj poruci...

Dobra stvar ... vidim iz tvog fajla da FreeBasic ima MACRO instrukcije , dali postoji neki nacin da se definisu klase ??
[ Aleksandar Ružičić @ 11.03.2008. 14:48 ] @
klase (nasledjivanje, polimorfizam...) nisu jos uvek implementirane, ali iz todo liste se vidi da ce da budu kao one u php5 :)

mozes da deklarises Type kome ces da dodelis odredjene metode, svojstva, tako da na neki nacin oni (UDT-ovi) predstavljaju klase trenutno (naravno kada klase budu bile implementirane bice pravog oop-a)

nego sad kad sam opet prosao kroz kod za ovaj dinamicki niz, vidim da postoji mogucnost dobijanja GPF-a, ja nisam uspeo nijednom jos da izazovem GPF ali teoretski moze da se desi, zaboravio sam -1 u kodu za "nulovanje" memorije... ko dobije GPF zna sta treba da uradi :)