Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Arrayn(kö?) tyhjennys VB

Gevil [28.10.2002 22:32:07]

#

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.

Antti Laaksonen [28.10.2002 23:16:56]

#

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)

progo [29.10.2002 07:50:58]

#

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

Antti Laaksonen [29.10.2002 12:08:12]

#

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ä)

progo [29.10.2002 14:34:57]

#

Jaaa, sitäpä en tiennytkään.. (kylläpä on huono vb-opas putkassa :D ei, se oli vain vitsi )

Gevil [29.10.2002 17:47:19]

#

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?

Antti Laaksonen [29.10.2002 18:24:36]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta