Pomoč LibreOffice 7.2
Ponuja zbirko metod za ravnanje z in preoblikovanje enodimenzionalnih polj (vektorjev) in dvodimenzionalnih polj (matrik). To vključuje operacije nad množicami, razvrščanje ter uvažanje in izvažanje besedilnih datotek.
Polj z več kot dvema dimenzijama ni možno uporabljati z metodami te storitve, edina izjema je metoda CountDims, ki sprejema polja poljubnih dimenzij.
Elementi polja so lahko vrednosti poljubne vrste, vključno s (pod)polji.
Pred uporabo storitve Array je potrebno naložiti knjižnico ScriptForge:
GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
Z nalaganjem knjižnice ustvarite predmet SF_Array, ki ga lahko uporabite za klicanje metod v storitvi Array.
Naslednji odlomki kode kažejo različne načina klica metod storitve Array (metoda Append služi kot primer):
SF_Array.Append(...)
Dim arr : arr = SF_Array
arr.Append(...)
Dim arr : arr = CreateScriptService("Array")
arr.Append(...)
Metoda CreateScriptService je na voljo šele po nalaganju knjižnice ScriptForge.
Prvi argument večine metod je predmet polja, ki bo obravnavan. Vedno je podan s sklicem in se ne spreminja. Metode, kot so Append, Prepend itn. po izvedbi vrnejo nov predmet polja.
Doda elemente, navedene kot argumente, na konec vhodnega polja.
SF_Array.Append(Array_1D As Variant, arg0 As Variant, [arg1 As Variant], ...) As Variant
Array_1D: predobstoječa matrika, lahko je prazna.
arg0, ...: seznam elementov, ki jih želite pripeti, dodati polju Array_1D.
Sub Example_Append()
Dim a As Variant
a = SF_Array.Append(Array(1, 2, 3), 4, 5)
' (1, 2, 3, 4, 5)
End Sub
Doda nov stolpec na desno stran dvodimenzionalnega polja. Končno polje ima enako spodnjo mejo kot začetno dvodimenzionalno polje.
SF_Array.AppendColumn(Array_2D As Variant, New_Column As Variant) As Variant
Array_2D: predobstoječa matrika, lahko je prazna. Če ima to polje samo eno dimenzijo, velja kot prvi stolpec rezultatskega dvodimenzionalnega polja.
New_Column: 1-dimenzionalno polje s toliko elementi, kolikor je vrstic v Array_2D.
Sub Example_AppendColumn()
Dim a As Variant, b As variant
a = SF_Array.AppendColumn(Array(1, 2, 3), Array(4, 5, 6))
' ((1, 4), (2, 5), (3, 6))
b = SF_Array.AppendColumn(a, Array(7, 8, 9))
' ((1, 4, 7), (2, 5, 8), (3, 6, 9))
c = SF_Array.AppendColumn(Array(), Array(1, 2, 3))
' ∀ i ∈ {0 ≤ i ≤ 2} : b(0, i) ≡ i
End Sub
Doda novo vrstico na dno dvodimenzionalnega polja. Končno polje ima enako spodnjo mejo kot začetno dvodimenzionalno polje.
SF_Array.AppendRow(Array_2D As Variant, Row As Variant) As Variant
Array_2D: predobstoječa matrika, lahko je prazna. Če je to polje enodimenzionalno, šteje za prvo vrstico ciljnega dvodimenzionalnega polja.
Row: enodimenzionalno polje s toliko elementi, kolikor je stolpcev v polju Array_2D.
Sub Example_AppendRow()
Dim a As Variant, b As variant
a = SF_Array.AppendRow(Array(1, 2, 3), Array(4, 5, 6))
' ((1, 2, 3), (4, 5, 6))
b = SF_Array..AppendRow(Array(), Array(1, 2, 3))
' ∀ i ∈ {0 ≤ i ≤ 2} : b(i, 0) ≡ i
End Sub
Preveri, če enodimenzionalno polje vsebuje določeno število, besedilo ali datum. Primerjava besedil lahko razlikuje med velikimi in malimi črkami ali pa ne.
Vhodna razvrščena polja morajo biti zapolnjena homogeno, kar pomeni, da morajo biti vsi njihovi elementi skalarji iste vrste (elementa Empty in Null sta prepovedana).
Rezultat metode je nepredvidljiv, če je polje razglašeno za razvrščeno, pa dejansko ni.
Dvojiško iskanje se izvee, ko je polje razvrščeno, sicer se preprosto preišče od vrha do dna, elementi Empty in Null pa so prezrti.
SF_Array.Contains(Array_1D, ToFind As Variant, [CaseSensitive As Boolean], [SortOrder As String]) As Boolean
Array_1D: polje za pregled.
ToFind: iskano število, datum ali niz.
CaseSensitive: samo za primerjavo nizov, privzeto = False.
SortOrder: vrstni red razvrščanja, možne vrednosti so "ASC", "DESC" in "" (= ni razvrščeno, privzeta vrednost).
Sub Example_Contains()
Dim a As Variant
a = SF_Array.Contains(Array("A","B","c","D"), "C", SortOrder := "ASC") ' True
SF_Array.Contains(Array("A","B","c","D"), "C", CaseSensitive := True) ' False
End Sub
Shrani vsebino dvostolpčnega polja v predmet ScriptForge.Dictionary.
Ključ bo izluščen iz prvega stolpca, element iz drugega.
SF_Array.ConvertToDictionary(Array_2D As Variant) As Variant
Array_1D: prvi stolpec mora vsebovati izključno nize dolžine > 0, v poljubnem zaporedju.
Sub Example_ConvertToDictionary()
Dim a As Variant, b As Variant
a = SF_Array.AppendColumn(Array("a", "b", "c"), Array(1, 2, 3))
b = SF_Array.ConvertToDictionary(a)
MsgBox b.Item("c") ' 3
End Sub
Preštej število dimenzij matrike. Rezultat je lahko večji od dva.
Če argument ni matrika, vrne -1
Če matrika ni inicializirana, vrne 0.
SF_Array.CountDims(Array_ND As Variant) As Integer
Array_ND: polje za preučevanje.
Sub Example_CountDims()
Dim a(1 To 10, -3 To 12, 5)
MsgBox SF_Array.CountDims(a) ' 3
End Sub
Tvori množico, kot ničelno polje, tako da izvede operacijo razlike na obeh vhodnih poljih. Elementi rezultata izvirajo iz prvega polja, ne iz drugega.
Polje rezultata je razvrščeno v naraščajočem vrstnem redu.
Obe vhodni polji morata biti homogeno zapolnjeni, kar pomeni, da morajo biti vsi njuni elementi skalarji iste vrste. Elementa Empty in Null sta prepovedana.
Primerjava besedil lahko razlikuje med velikimi in malimi črkami ali pa ne.
SF_Array.Difference(Array1_1D As Variant, Array2_1D As Variant[, CaseSensitive As Boolean]) As Variant
Array1_1D: enodimenzionalno referenčno polje, katerega elemente pregledujemo za odstranitev.
Array2_1D: enodimenzionalno polje, katerega elementi se odštevajo od prvega vhodnega polja.
CaseSensitive: samo če so polja izpolnjena z nizi, privzeto = False.
Sub Example_Difference()
Dim a As Variant
a = SF_Array.Difference(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("A", "B")
End Sub
Zapiši vse elemente polja zaporedno v besedilno datoteko. Če datoteka že obstaja, bo prepisana brez opozorila.
SF_Array.ExportToTextFile(Array_1D As Variant, FileName As String, [Encoding As String]) As Boolean
Array_1D: matrika za izvoz. Vsebovati mora zgolj nize.
FileName: ime besedilne datoteke, ki vsebuje podatke. Ime je izraženo kot jo podaja trenutna lastnost FileNaming storitve SF_FileSystem. Privzeto = poljubno (sprejeta tako v zapisu URL kot v domorodnem zapisu operacijskega sistema).
Encoding: nabor znakov, ki naj bo uporabljen. Uporabi eno od imen, navedenih v naborih znakov IANA (v angl. jeziku). Upoštevajte, da LibreOffice morda ne podpira vseh obstoječih naborov znakov. Privzeta vrednost je »UTF-8«.
Sub Example_ExportToTextFile()
SF_Array.ExportToTextFile(Array("A","B","C","D"), "C:\Temp\A short file.txt")
End Sub
Izveleč določen stolpec iz dvodimenzionalnega polja kot novo polje.
Njeni spodnja meja LBound in zgornja meja UBound sta identični mejam prve razsežnosti vhodnega polja.
SF_Array.ExtractColumn(Array_2D As Variant, ColumnIndex As Long) As Variant
Array_2D: polje, iz katerega želite izvleči podatke.
ColumnIndex: številka stolpca, ki ga želite izvleči – mora biti v intervalu [LBound, UBound].
Sub Example_ExtractColumn
'Ustvari polje 3x3: |1, 2, 3|
' |4, 5, 6|
' |7, 8, 9|
Dim mat as Variant, col as Variant
mat = SF_Array.AppendRow(Array(), Array(1, 2, 3))
mat = SF_Array.AppendRow(mat, Array(4, 5, 6))
mat = SF_Array.AppendRow(mat, Array(7, 8, 9))
'Izvleče tretji stolpec: |3, 6, 9|
col = SF_Array.ExtractColumn(mat, 2)
End Sub
Izloči določeno vrstico iz dvodimenzionalnega polja kot novo polje.
Njeni spodnja meja LBound in zgornja meja UBound sta identični mejam druge razsežnosti vhodnega polja.
SF_Array.ExtractRow(Array_2D As Variant, RowIndex As Long) As Variant
Array_2D: polje, iz katerega želite izvleči podatke.
RowIndex: številka vrstice, ki jo želite izvleči – mora biti v intervalu [LBound, UBound].
Sub Example_ExtractRow
'Ustvari polje 3x3: |1, 2, 3|
' |4, 5, 6|
' |7, 8, 9|
Dim mat as Variant, row as Variant
mat = SF_Array.AppendRow(Array(), Array(1, 2, 3))
mat = SF_Array.AppendRow(mat, Array(4, 5, 6))
mat = SF_Array.AppendRow(mat, Array(7, 8, 9))
'Izvleče prvo vrstico: |1, 2, 3|
row = SF_Array.ExtractRow(mat, 0)
End Sub
Zloži vse posamezne elemente polja in vse elemente njenih podpolj v eno samo novo polje brez podpolj. Prazna podpolja so prezrta in podpolja več kot ene dimenzije niso sploščena.
SF_Array.Flatten(Array_1D As Variant) As Variant
Array_1D: predobstoječa matrika, lahko je prazna.
Sub Example_Flatten()
Dim a As Variant
a = SF_Array.Flatten(Array(Array(1, 2, 3), 4, 5))
' (1, 2, 3, 4, 5)
End Sub
Metodo Flatten lahko uporabite z drugimi metodami, kot sta Append in Prepend, da spojite množico enodimenzionalnih polj v eno samo enodimenzionalno polje.
Sledi primer, kako lahko kombinirate metodi Flatten in Append, da spojite tri polja.
Sub Concatenate_Example
'Ustvari tri polja za ta primer
Dim a as Variant, b as Variant, c as Variant
a = Array(1, 2, 3)
b = Array(4, 5)
c = Array(6, 7, 8, 9)
'Poveže oz. spoji tri polja v eno samo enodimenzionalno polje
Dim arr as Variant
arr = SF_Array.Flatten(SF_Array.Append(a, b, c))
'(1, 2, 3, 4, 5, 6, 7, 8, 9)
End Sub
Uvozi podatke, vsebovane v datoteki, ločeni z vejicami (CSV). Vejico lahko zamenja poljuben znak.
Uporabljeni zapis CSV je podrobno opisan na strani IETF Common Format and MIME Type for CSV Files (v angl.).
Vsaka vrstica v datoteki vsebuje poln zapis (deljenje vrstic ni dovoljeno).
Zaporedja \n, \t itn. pa ostanejo nespremenjena. Uporabite metodo SF_String.Unescape() za njihovo upravljanje.
Metoda vrne dvodimenzionalno polje, katerega vrstice ustrezajo posameznim zapisom, prebranim iz datoteke, in katerega stolpci ustrezajo poljem v zapisih. Pri tem se ne izvede preverjanje o koherentnosti vrst polj po stolpcih. Opravljena bo presoja za identifikacijo številskih in datumskih vrst.
Če vrstica vsebuje manj ali več polj kot prva vrstica v datoteki, prikliče izjemo. Prazne vrstice pa so enostavno prezrte. Če velikost datoteke presega mejno število elementov (glejte kodo), javi napako in polje je okrajšano.
SF_Array.ImportFromCSVFile(FileName As String, [Delimiter As String], [DateFormat As String]) As Variant
FileName: ime besedilne datoteke, ki vsebuje podatke. Ime je izraženo kot jo podaja trenutna lastnost FileNaming storitve SF_FileSystem. Privzeto = poljubno (sprejeta tako v zapisu URL kot v domorodnem zapisu operacijskega sistema).
Delimiter: posamezen znak kot ločilo, običajno vejica, podpičje ali tabulator. Privzeto = ",".
DateFormat: datume obravnava poseben mehanizem, ko je oblika datuma DateFormat ena od vrednosti "YYYY-MM-DD", "DD-MM-YYYY" ali "MM-DD-YYYY". Pomišljaj (-) lahko zamenjate s piko (.), poševnico (/) ali presledkom. Druge oblike datuma bodo prezrte. Datumi s privzeto vrednostjo "" veljajo za navadno besedilo.
Glede na to datoteko CSV:
Name,DateOfBirth,Address,City
Anna,2002/03/31,"Rue de l'église, 21",Toulouse
Fred,1998/05/04,"Rue Albert Einstein, 113A",Carcassonne
Sub Example_ImportFromCSVFile()
Dim a As Variant
a = SF_Array.ImportFromCSVFile("C:\Temp\myFile.csv", DateFormat := "YYYY/MM/DD")
MsgBox a(0, 3) ' City
MsgBox TypeName(a(1, 2)) ' Date
MsgBox a(2, 2) ' Rue Albert Einstein, 113A
End Sub
V enodimenzionalnem polju poiščite število, niz ali datum. Primerjava besedil lahko razlikuje med velikimi in malimi črkami ali pa ne.
Če je polje razvrščeno, mora biti zapolnjeno homogeno, kar pomeni, da morajo biti vsi njegovi elementi skalarji iste vrste (elementa Empty in Null sta prepovedana).
Rezultat metode je nepredvidljiv, če je polje razglašeno za razvrščeno, pa dejansko ni.
V razvrščenih poljih se izvede dvojiško iskanje. Sicer se polja enostavno pregleda od vrha do dna in elementi Empty in Null so prezrti.
Ta metoda vrne LBound(input array) - 1, če iskanje ni bilo uspešno.
SF_Array.IndexOf(Array_1D, ToFind As Variant, [CaseSensitive As Boolean], [SortOrder As String]) As Long
Array_1D: polje za pregled.
ToFind: iskano število, datum ali niz.
CaseSensitive: samo za primerjavo nizov, privzeto = False.
SortOrder: način razvrščenosti, t.j. "ASC", "DESC" ali "" (= ni razvrščeno, to je privzeta vrednost)
Sub Example_IndexOf()
MsgBox SF_Array.IndexOf(Array("A","B","c","D"), "C", SortOrder := "ASC") ' 2
MsgBox SF_Array.IndexOf(Array("A","B","c","D"), "C", CaseSensitive := True) ' -1
End Sub
Elemente, nanizane kot argumente, vstavi v vhodno polje pred danim indeksom.
Argumenti so naključno vstavljeni. Vsak izmed njih je lahko skalar ali poljubna vrsta podpolja.
SF_Array.Insert(Array_1D As Variant, Before As Long, arg0 As Variant, [arg1 As Variant], ...) As Variant
Array_1D: predobstoječa matrika, lahko je prazna.
Before: indeks, pred katerim želimo vstavljati; mora biti v intervalu [LBound, UBound + 1].
arg0, ...: seznam elementov za vstavljanje v polje Array_1D.
Sub Example_Insert()
Dim a As Variant
a = SF_Array.Insert(Array(1, 2, 3), 2, "a", "b")
' (1, 2, "a", "b", 3)
End Sub
Na njemu ustrezno mesto v razvrščeno polje vstavi nov element.
Polje mora biti homogeno zapolnjeno, kar pomeni, da morajo biti vsi njegovi elementi skalarji iste vrste.
Elementa Empty in Null sta prepovedana.
SF_Array.InsertSorted(Array_1D As Variant, Item As Variant, SortOrder As String, CaseSensitive As Boolean) As Variant
Array_1D: polje za razvrščanje.
Item: skalarna vrednost za vstavljanje, iste vrste kot obstoječi elementi polja.
SortOrder: "ASC" (privzeto) ali "DESC".
CaseSensitive: samo za primerjavo nizov, privzeto = False.
Sub Example_InsertSorted()
Dim a As Variant
a = SF_Array.InsertSorted(Array("A", "C", "a", "b"), "B", CaseSensitive := True)
' ("A", "B", "C", "a", "b")
End Sub
Tvori množico, kot ničelno polje, tako da izvede operacijo preseka na obeh vhodnih poljih. Elementi rezultata se nahajajo v obeh poljih.
Polje rezultata je razvrščeno v naraščajočem vrstnem redu.
Obe vhodni polji morata biti homogeno zapolnjeni, kar pomeni, da morajo biti vsi njuni elementi skalarji iste vrste. Elementa Empty in Null sta prepovedana.
Primerjava besedil lahko razlikuje med velikimi in malimi črkami ali pa ne.
SF_Array.Intersection(Array1_1D As Variant, Array2_1D As Variant[, CaseSensitive As Boolean]) As Variant
Array1_1D: prvo vhodno polje.
Array2_1D: drugo vhodno polje.
CaseSensitive: velja za polja, zapolnjena z besedilnimi elementi, privzeto = False.
Sub Example_Intersection()
Dim a As Variant
a = SF_Array.Intersection(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("C", "b")
End Sub
Združi dvodimenzionalno polje z dvema ločiloma: prvim za stolpce, drugim za vrstice.
SF_Array.Join2D(Array_2D As Variant, ColumnDelimiter As String, RowDelimiter As String, Quote As Boolean) As String
Array_2D: dvodimenzionalno polje, vsak njegov element mora biti besedilo, število, datum ali logična vrednost.
Datumi se pretvorijo v obliko LLLL-MM-DD uu:mm:ss.
Neveljavne elemente zamenja niz ničelne dolžine.
ColumnDelimiter: ločilo med stolpci (privzeto = tabulator/Chr(9)).
RowDelimiter: ločilo med vrsticami (privzeto = LineFeed/Chr(10))
Quote: če je True, zaščiti nize z dvojnimi narekovaji. Privzeta vrednost je False.
Sub Example_Join2D()
- | 1, 2, "A", [2020-02-29], 5 |
- SF_Array.Join_2D(| 6, 7, "this is a string", 9, 10 |, ",", "/")
- ' "1,2,A,2020-02-29 00:00:00,5/6,7,this is a string,9,10"
End Sub
Elemente, nanizane kot argumente, vstavi na začetek vhodnega polja.
SF_Array.Prepend(Array_1D As Variant, arg0 As Variant, [arg1 As Variant], ...) As Variant
Array_1D: predobstoječa matrika, lahko je prazna.
arg0, ...: seznam elementov, ki jih želite pripeti na začetek polja Array_1D.
Sub Example_Prepend()
Dim a As Variant
a = SF_Array.Prepend(Array(1, 2, 3), 4, 5)
' (4, 5, 1, 2, 3)
End Sub
Pripne nov stolpec na levo stran dvodimenzionalnega polja. Končno polje ima enako spodnjo mejo kot začetno dvodimenzionalno polje.
SF_Array.PrependColumn(Array_2D As Variant, Column As Variant) As Variant
Array_2D: predobstoječa matrika, lahko je prazna. Če je to polje enodimenzionalno, šteje za zadnji stolpec ciljnega dvodimenzionalnega polja.
Column: 1-dimenzionalno polje s toliko elementi, kolikor je vrstic v Array_2D.
Sub Example_PrependColumn()
Dim a As Variant, b As variant
a = SF_Array.PrependColumn(Array(1, 2, 3), Array(4, 5, 6))
' ((4, 1), (5, 2), (6, 3))
b = SF_Array.PrependColumn(Array(), Array(1, 2, 3))
' ∀ i ∈ {0 ≤ i ≤ 2} : b(0, i) ≡ i
End Sub
Doda novo vrstico na začetek dvodimenzionalnega polja. Končno polje ima enako spodnjo mejo kot začetno dvodimenzionalno polje.
SF_Array.PrependRow(Array_2D As Variant, Row As Variant) As Variant
Array_2D: predobstoječa matrika, lahko je prazna. Če je to polje enodimenzionalno, šteje za zadnjo vrstico ciljnega dvodimenzionalnega polja.
Row: 1-dimenzionalno polje s toliko elementi, kolikor je vrstic v Array_2D.
Sub Example_PrependRow()
Dim a As Variant, b As variant
a = SF_Array.PrependRow(Array(1, 2, 3), Array(4, 5, 6))
' ((4, 5, 6), (1, 2, 3))
b = SF_Array.PrependRow(Array(), Array(1, 2, 3))
' ∀ i ∈ {0 ≤ i ≤ 2} : b(i, 0) ≡ i
End Sub
Inicializira novo ničelno polje s številskimi vrednostmi.
SF_Array.RangeInit(From As [number], UpTo As [number] [, ByStep As [number]]) As Variant
From: vrednost prvega elementa.
UpTo: zadnji element naj ne presega UpTo.
ByStep: razlika med dvema zaporednima elementoma (privzeto = 1).
Sub Example_RangeInit()
Dim a As Variant
a = SF_Array.RangeInit(10, 1, -1)
' (10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
End Sub
Vrne preobrnjeno enodimenzionalno vhodno matriko.
SF_Array.Reverse(Array_1D As Variant) As Variant
Array_1D: polje, ki ga želimo preobrniti.
Sub Example_Reverse()
Dim a As Variant
a = SF_Array.Reverse(Array("a", 2, 3, 4))
' (4, 3, 2, "a")
End Sub
Vrne poljubno permutacijo enodimenzionalnega polja.
SF_Array.Shuffle(Array_1D As Variant) As Variant
Array_1D: polje, ki ga želimo premešati.
Sub Example_Shuffle()
Dim a As Variant
a = SF_Array.Shuffle(Array(1, 2, 3, 4))
' Nepredvidljivo
End Sub
Vrne podmnožico enodimenzionalnega polja.
SF_Array.Slice(Array_1D As Variant, From As Long, [UpTo As Long]) As Variant
Array_1D: polje, ki ga želite razrezati.
From: spodnji indeks v Array_1D podpolja za izvlečenje (vključno s From)
UpTo: zgornji indeks Array_1D podpolja za izvlečenje (vključno z UpTo). Privzeto = zgornja meja Array_1D. Če je UpTo < From, bo vrnjeno polje prazno.
Sub Example_Slice()
Dim a As Variant
a = SF_Array.Slice(Array(1, 2, 3, 4, 5), 1, 3) ' (2, 3, 4)
End Sub
Razvrsti enodimenzionalno polje po naraščajočem ali padajočem vrstnem redu. Primerjava besedil lahko razlikuje med velikimi in malimi črkami ali pa ne.
Polje mora biti homogeno zapolnjeno, kar pomeni, da morajo biti vsi njegovi elementi skalarji iste vrste.
Elementa Empty in Null sta dovoljena. Običajno velja: Empty < Null < poljubna druga skalarna vrednost.
SF_Array.Sort(Array_1D As Variant, SortOrder As String, CaseSensitive As Boolean) As Variant
Array_1D: polje za razvrščanje.
SortOrder: "ASC" (privzeto) ali "DESC".
CaseSensitive: samo za primerjavo nizov, privzeto = False.
Sub Example_Sort()
Dim a As Variant
a = SF_Array.Sort(Array("a", "A", "b", "B", "C"), CaseSensitive := True)
' ("A", "B", "C", "a", "b")
End Sub
Vrne permutacijo stolpcev v dvodimenzionalnem polju, razvščenih po vrednostih v podani vrstici.
Vrstica mora biti homogeno zapolnjena, kar pomeni, da morajo biti vsi njeni elementi skalarji iste vrste.
Elementa Empty in Null sta dovoljena. Običajno velja: Empty < Null < poljubna druga skalarna vrednost.
SF_Array.SortColumns(Array_1D As Variant, RowIndex As Long, SortOrder As String, CaseSensitive As Boolean) As Variant
Array_1D: polje za razvrščanje.
RowIndex: indeks vrstice, glede na katero bodo razvrščeni stolpci.
SortOrder: "ASC" (privzeto) ali "DESC".
CaseSensitive: samo za primerjavo nizov, privzeto = False.
Sub Example_SortColumns()
- | 5, 7, 3 | ' | 7, 5, 3 |
- SF_Array.SortColumns(| 1, 9, 5 |, 2, "ASC") ' | 9, 1, 5 |
- | 6, 1, 8 | ' | 1, 6, 8 |
End Sub
Vrne permutacijo vrstic v dvodimenzionalnem polju, razvščenih po vrednostih v podanem stolpcu.
Stolpec mora biti homogeno zapolnjen, kar pomeni, da morajo biti vsi njegovi elementi skalarji iste vrste.
Elementa Empty in Null sta dovoljena. Običajno velja: Empty < Null < poljubna druga skalarna vrednost.
SF_Array.SortRows(Array_1D As Variant, ColumnIndex As Long, SortOrder As String, CaseSensitive As Boolean) As Variant
Array_1D: polje za razvrščanje.
RowIndex: indeks stolpca, glede na katerega bodo razvrščene vrstice.
SortOrder: "ASC" (privzeto) ali "DESC".
CaseSensitive: samo za primerjavo nizov, privzeto = False.
Sub Example_SortRows()
- | 5, 7, 3 | ' | 1, 9, 5 |
- SF_Array.SortRows(| 1, 9, 5 |, 2, "ASC") ' | 5, 7, 3 |
- | 6, 1, 8 | ' | 6, 1, 8 |
End Sub
Zamenja vrstice in stolpce v dvodimenzionalnem polju.
SF_Array.Transpose(Array_2D As Variant) As Variant
Array_2D: polje za transponiranje.
Sub Example_Transpose()
- | 1, 2 | ' | 1, 3, 5 |
- SF_Array.Transpose(| 3, 4 |) ' | 2, 4, 6 |
- | 5, 6 |
End Sub
Iz enodimenzionalnega polja odstrani vse vnose Null in Empty ter vnose ničelne dolžine.
Nizi so okrajšani s funkcijo LibreOffice Basic Trim().
SF_Array.TrimArray(Array_1D As Variant) As Variant
Array_1D: polje za pregled.
Sub Example_TrimArray()
Dim a As Variant
a = SF_Array.TrimArray(Array("A","B",Null," D "))
' ("A","B","D")
End Sub
Tvori množico, kot ničelno polje, tako da izvede operacijo unije na obeh vhodnih poljih. Elementi rezultata izvirajo iz obeh polj.
Polje rezultata je razvrščeno v naraščajočem vrstnem redu.
Obe vhodni polji morata biti homogeno zapolnjeni, kar pomeni, da morajo biti vsi njuni elementi skalarji iste vrste. Elementa Empty in Null sta prepovedana.
Primerjava besedil lahko razlikuje med velikimi in malimi črkami ali pa ne.
SF_Array.Union(Array1_1D As Variant, Array2_1D As Variant[, CaseSensitive As Boolean]) As Variant
Array1_1D: prvo vhodno polje.
Array2_1D: drugo vhodno polje.
CaseSensitive: samo če so polja izpolnjena z nizi, privzeto = False.
Sub Example_Union()
Dim a As Variant
a = SF_Array.Union(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("A", "B", "C", "Z", "b")
End Sub
Sestavite množico enkratnih vrednosti, ki izhajajo iz vhodnega polja.
Vhodno polje mora biti homogeno zapolnjeno, kar pomeni, da morajo biti vsi njegovi elementi skalarji iste vrste. Elementa Empty in Null sta prepovedana.
Primerjava besedil lahko razlikuje med velikimi in malimi črkami ali pa ne.
SF_Array.Unique(Array_1D As Variant, CaseSensitive As Boolean]) As Variant
Array_1D: vhodna matrika.
CaseSensitive: samo če je polje izpolnjeno z besedili oz. nizi, privzeto = False.
Sub Example_Unique()
Dim a As Variant
a = SF_Array.Unique(Array("A", "C", "A", "b", "B"), CaseSensitive := True)
' ("A", "B", "C", "b")
End Sub