LibreOffice 24.8 laguntza
Bildumak mota askotako elementuak biltegiratzeko erabili daitezke. Elementu bakoitza bere indizearen bidez edo aukerako gako baten bidez atzitu daiteke.
Collection objektuek honako metodoak dituzte:
Add: Elementu berria txertatzen du bilduman. Aukeran, kate-balio bat definitu daiteke elementuaren gako gisa.
Count: Bildumako elementu kopurua itzultzen du.
Item: Bildumako elementu bat itzultzen du, bere indizea edo gakoa pasatuta.
Remove: Elementu bat bildumatik kentzen du, bere indizearen edo gakoaren bidez.
Bilduma bateko elementuak atzitzeko, bere indizeak (dimentsio bakarreko matrize gisa) edo lotutako gakoak erabili daitezke.
ScriptForge Dictionary zerbitzuak Collection objektua hedatzen du. Eginbide gehigarriak ematen ditu, adibidez gakoak atzitzea eta ordeztea, edo Array objektuak eta JSON kateak inportatzea/esportatzea.
Collection bat sortzeko, erabili New gako-hitza. Hurrengo adibideak Collection objektu bat sortzen du eta hiru elementurekin betetzen du:
Dim myCollection as New Collection
myCollection.Add("Some text")
myCollection.Add(100)
myCollection.Add(Array(1, 2, 3, 4))
MsgBox myCollection.Count ' 3
Add metodoak elementu berriak gehitzen dizkio Collection objektuari.
oCollection.Add(item, [key], [before|after])
item: Collection bildumari gehituko zaion elementua. Edozein motatakoa izan daiteke.
key: Balio hau identifikatzeko erabiliko den gako bakarrra den kate-balioa.
before, after: Aukerako gako-hitza, elementu berria Collection objektuko zein tokitan kokatuko den adierazten duena. Bi argumentuetako bakarra, before edo after zehaztu daiteke aldi berean. Elementu berria zein indizeren edo gakoren aurretik (edo ondoren) kokatuko den zehazten du.
Beheko adibidean, bi elementu gehitzen zaizkio Collection bati. Lehenak gako bat du lotuta, eta bigarrenak ez du.
Dim myCollection as New Collection
myCollection.Add(100, "first")
myCollection.Add(101)
Add metodoak gako-hitzak diren argumentuak ere onartzen ditu:
myCollection.Add(item := 100, key := "first")
Gakoek bakarrak izan behar dute Collection objektu batean. Gakoen arteko konparazioek maiuskulak/minuskulak bereizten dituzte. Gako bikoiztuak gehitzen badira, exekuzio-garaiko errore bat gertatuko da.
Beheko adibidean, before eta after gako-hitzak erabiltzen dira gehitzen den elementuaren kokagunea zehazteko.
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
Collection objektu bateko elementuei osoko zenbakia den indize-balio bat esleitzen zaie, 1 zenbakitik hasita. Indize hori elementuak gehitu diren ordenaren araberakoa da.
Erabili Item metodoa elementu jakin bat bere indizearen edo gakoaren bidez atzitzeko.
oCollection.Item(index)
oCollection.Item(key)
index: Osoko balio bat, itzuliko den elementuaren indizea zehazten duena.
key: Kate-balio bat, itzuliko den elementuaren gakoa zehazten duena.
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
Erabili Remove metodoa Collection objektu bateko elementuak ezabatzeko.
Elementuak beren indizea erabiliz edo beren gako-balioa erabiliz kendu daitezke.
oCollection.Remove(index)
oCollection.Remove(key)
index: Osoko balio bat, ezabatuko den elementuaren indizea zehazten duena.
key: Kate-balio bat, ezabatuko den elementuaren gakoa zehazten duena.
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
Posible da For Each ... Next instrukzioa erabiltzea Collection objektu bateko elementu guztietan iteratzeko.
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
Collection objektu bateko elementu guztiak kentzeko, deitu Remove metodoari elementu bakoitzerako, beheko adibidean erakusten den moduan:
' Sortu bi sarrera dituen adibideko Collection bat
Dim myCollection as New Collection
myCollection.Add(item := 10, key := "A")
myCollection.Add(item := 11, key := "B")
MsgBox myCollection.Count ' 2
' Bildumako elementu guztiak kentzen ditu
For i = myCollection.Count To 1 Step -1
myCollection.Remove(i)
Next i
MsgBox myCollection.Count ' 0