LibreOffice 24.8 Hjelp
Samlingar kan brukast til å lagra element av ulike typar. Kvart element kan opnast ved hjelp av indeksen eller av ein valfri nøkkel som er knyt til han.
Eit Collection-objekt (samlingsobjekt) har desse metodane:
Add: Legg eit nytt element inn i samlinga. Du kan også velja å definera ein strengverdi som nøkkelen til elementet.
Count: returnerer talet på element i samlinga.
Item: returnerer elementet i samlinga ved å senda indeksen eller nøkkelen.
Remove: fjernar det spesifiserte elementet frå samlinga ved å bruka indeksen eller nøkkelen.
Du får tilgang til elementa i ei samling anten ved hjelp av indeksane (som i ei 1-basert eindimensjonal matrise) eller med dei tilknytte nøklane.
Tenesta ScriptForge Dictionary utvidar objektet Collection ved å tilby tilleggsfunksjonar som nøkkelhenting og -erstatning, i tillegg til import/eksport til matrise-objekt og JSON-strengar.
For å laga ei Collection (samling) brukar du nøkkeleordet New (ny). Det følgjande eksempelet lagar eit Collection-objekt og fyller det med tre element:
Dim myCollection as New Collection
myCollection.Add("Some text")
myCollection.Add(100)
myCollection.Add(Array(1, 2, 3, 4))
MsgBox myCollection.Count ' 3
Metoden Add kan brukast til å leggja til nye element i Collection-objektet.
oCollection.Add(item, [key], [before|after])
element: det elementet som skal leggjast til i Collection. Kan vera av kva type som helst.
nøkkel: strengverdi brukt som ein unik nøkkel for å identifisera verdien.
før, etter: valfritt nøkkeleordsargument som indikerer kvar det nye elementet skal plaserast i Collection. Berre eittt av argumenta før eller etter kan brukast for å bestemma indeksen eller nøkkelen som det nye elementet skal plasserast framføre eller etter.
Eksempelet nedanfor legg to element til ei Collection. Den første har har ein nøkkel knytt til seg medan den andre ikkje har det.
Dim myCollection as New Collection
myCollection.Add(100, "first")
myCollection.Add(101)
Metoden Add har også støtte for nøkkelordargument:
myCollection.Add(item := 100, key := "first")
Nøklar må vera unike i eit Collection-objekt. Samanlikninga mellom nøklar skil mellom små og store bokstavar. Legg du til duplikat av nøkkelord, får du ein køyretidsfeil.
Eksempelet nedanfor viser korleis nøkkelordargumenta Before og After vert brukte for å bestemma kvar elementet som vert lagt til skal plasserast.
Dim myCollection as Variant
myCollection = New Collection
myCollection.Add(item := 101, key := "first")
myCollection.Add(item := 103, key := "third")
myCollection.Add(item := 105, key := "fifth")
MsgBox myCollection.Item(2) ' 103
myCollection.Add(item := 102, key := "second", before := "third")
MsgBox myCollection.Item(2) ' 102
myCollection.Add(item := 104, key := "fourth", after := 3)
MsgBox myCollection.Item(4) ' 104
Elementa i eit Collection-objekt er tildelt ein heiltals-indeksverdi som byrjar med 1 og svarar til den rekkjefølgja dei vart lagt til i.
Bruk metodenItem for å få tilgang etil eit gjeve element ved å bruka indeksen eller nøkkelen.
oCollection.Item(index)
oCollection.Item(key)
indeks: ein heiltalsverdi som spesifiserer indeksen til det elementet som skal returnerast.
nøkkel: ein strengverdi som spesifiserer nøkkelen til det elementet som skal returnerast.
Dim myCollection as New Collection
myCollection.Add(item := 101, key := "A")
myCollection.Add(item := 102, key := "B")
myCollection.Add(item := 103, key := "C")
MsgBox myCollection.Item("A") ' 101
MsgBox myCollection.Item(3) ' 103
Bruk metoden Remove for å sletta element frå eit Collection-objekt.
Element kan fjernast anten ved å bruka indeksen eller nøkkelordet for elementet.
oCollection.Remove(index)
oCollection.Remove(key)
indeks: ein heiltalsverdi som spesifiserer indeksen til det elementet som skal fjernast.
nøkkel: ein strengverdi som spesifiserer nøkkelen til det elementet som skal fjernast.
Dim myCollection as New Collection
myCollection.Add(item := 101, key := "first")
myCollection.Add(item := 102, key := "second")
myCollection.Add(item := 103, key := "third")
MsgBox myCollection.Count ' 3
' Removes the first value
myCollection.Remove(1)
' Removes the value whose key is "third"
myCollection.Remove("third")
MsgBox myCollection.Count ' 1
Det er mogleg å bruka uttrykket For Each … Next (for kvar … neste) for å gjenta over alle element i ei Collection.
Dim myCollection as New Collection
myCollection.Add(item := 101, key := "A")
myCollection.Add(item := 102, key := "B")
myCollection.Add(item := 103, key := "C")
For Each value In myCollection
MsgBox value
Next value
For å fjerna alle elementa frå eit Collection-objekt kallar du opp metoden Remove for kvart element, som vist i eksempelet her:
' Lagar ei eksempel-samling med to element
Dim myCollection as New Collection
myCollection.Add(item := 10, key := "A")
myCollection.Add(item := 11, key := "B")
MsgBox myCollection.Count ' 2
' Fjernar alle elementa i samlinga
For i = myCollection.Count To 1 Step -1
myCollection.Remove(i)
Next i
MsgBox myCollection.Count ' 0