Miten tyhjennetään array? VB6 ympäristönä. Oheisella tavalla on se määritelty (onko kyseessä edes array.. joku collection, mikä ero?)
Dim filut As New Collection
Niin eli jos minulla on tuolla vaikka 10 itemiä nyttten tallennettuna, niin millä koodinpätkällä saan sen tyhjäksi..? Kysykää jos tarvitsette lisää tietoa asiasta.
Jos nyt puhutaan arraysta eli taulukosta, niin Erase on oikea komento sen tyhjentämiseen:
Dim testi(10) As String testi(1) = "esimerkki" testi(2) = "esimerkki2" MsgBox testi(1) MsgBox testi(2) Erase testi MsgBox testi(1) MsgBox testi(2)
Jos taas puhutaan collectionista (mikä lie suomeksi), sen jokainen kohta pitänee poistaa erikseen Removella:
Dim testi As New Collection testi.Add "esimerkki" testi.Add "esimerkki2" MsgBox testi(1) MsgBox testi(2) For i = 1 To testi.Count testi.Remove 1 Next MsgBox testi(1) MsgBox testi(2)
Nyt taisi tulla virhe:
For i = 1 To testi.Count testi.Remove 1 Next
Ehkäpä meidän ei tarvitse tyhjentää solua 1 usempaan otteeseen? ;)
testi.Remove i
Ei toki tullut, collectionista poistetaan aina ensimmäinen solu, jolloin muut solut siirtyvät yhtä edemmäs, kunnes niitä ei enää ole.
Eli jos soluja on vaikka 1, 2, 3
Remove 1 -> 2, 3
Remove 1 -> 3
Remova 1 -> (tyhjä)
Jaaa, sitäpä en tiennytkään.. (kylläpä on huono vb-opas putkassa :D ei, se oli vain vitsi )
Arrayn ja Collectionin erot? Onko näin että Arraystä ei löydy nuita komentoja kuten add, count jne. kun taas collectionista löytyy? Onko muitakin eroja?
Array on paljon monipuolisempi kuin collection - se voi olla moniulotteinen ja sisältää omia datatyyppejä. Collection taas on uutta objektimuotoista Visual Basicia, ja sen hyviin puoliin kuuluu, etteivät kentät voi mennä päällekkäin lisäämisissä/poistoissa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.