LibreOffice 7.2 Hjælp
Leverer en samling af metoder til at manipulere og transformere matrixer i en dimension (vektorer) og matrixer i to dimensioner (matrixer). De indeholder sæt-operationer, sortering, import til og eksport fra tekstfiler.
Matrixer med mere end to dimensioner kan ikke bruges med metoderne i denne tjeneste; den eneste udtagelse er metoden CountDims, der accepterer matrixer med et vilkårligt antal dimensioner.
Matrix-elementer kan indeholde enhver type værdi, herunder (under)matrixer.
Før brug af tjenesten Array er det nødvendigt at hente biblioteket ScriptForge ved hjælp af:
GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
Indlæsning af biblioteket vil oprette objektet SF_Array, der kan bruges til at kalde metoderne i tjenesten Array-
De følgende kodestumper viser de forskellige måder at kalde metoder i tjenesten Array på (metoden Append bruges som eksempel):
SF_Array.Append(...)
Dim arr : arr = SF_Array
arr.Append(...)
Dim arr : arr = CreateScriptService("Array")
arr.Append(...)
Metoden CreateScriptService er først tilgængeligt, efter at du har hentet biblioteket CreateScriptService.
Det første argument i de fleste motoder er det matrix-objekt, der skal behandles. Det overleveres altid ved reference og lades uændret. Metoder som for eksempel Append, Prepend osv. returnerer et nyt matrix efter deres udførelse.
Tilføjer de oplistede elementer som argumenter i slutningen af input-matrixen.
SF_Array.Append(Array_1D As Variant, arg0 As Variant, [arg1 As Variant], ...) As Variant
Array_1D : det forudeksisterende matrix, kan være tomt.
arg0, ... : en liste over elementer, der skal tilføjes 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
Tilføjer en ny kolonne på højre side i et to-dimensionelt matrix. De resulterende matrix har de samme nedre grænser som det oprindelige to-dimensionelle matrix.
SF_Array.AppendColumn(Array_2D As Variant, New_Column As Variant) As Variant
Matrix_2D : det forudeksisterende matrix, kan være tomt. Hvis dette matrix kun har en dimension, betragtes det som den første kolonne i det resulterende to-dimensionelle matrix.
Ny_Kolonne : en en-dimensionel matrix med lige så mange elementer, som der er rækker i 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
Tilføj en ny række nederst nederst i en to-dimensionel matrix. Den resulterende matrix har de samme nedre grænser som den oprindelige to-dimensionelle matrix.
SF_Array.AppendRow(Array_2D As Variant, Row As Variant) As Variant
Matrix_2D : den forudeksisterende matrix, kan være tom. Hvis denne matrix har en dimension, betragtes denne som den første række af den af den resulterende to-dimensionelle matrix.
Række : en en-dimensionel matrix med lige så mange elementer, som der der kolonner i Matrix_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
Tjek, om en endimensionel matrix indeholder et bestemt tal, tekst eller dato. Tekstsammenligningen kan skelne mellem Store og små bogstaver eller ikke.
Sorteret input-matrixer skal udfyldes homogent; det vil sige, at alle elementer skal være skalarer af den samme type (Tomme og Null-elementer er forbudt).
Metodens resultat er uforudsigelig, når matrixen annonceres som sorteret og faktisk ikke er det.
Der udføres en søgning, når matrixen er sorteret, ellers bliver den simpelthen skannet fra top til bund og elementerne Tom og Null ignoreres.
SF_Array.Contains(Array_1D, ToFind As Variant, [CaseSensitive As Boolean], [SortOrder As String]) As Boolean
Matrix_1D: den matrix, der skal scannes,
AtFinde: et tal, en dato eller en streng, der skal findes.
Skelner mellem Stort og småt: Kun til strengsammenligning, standard = Falsk.
Sorteringsrækkefølge: "ASC", "DESC" eller "" (= ikke sorteret, standard)
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
Gem indholdet af en to-kolonners matrix i et ScriptForge.Dictionary-objekt.
Nøglen bliver trukket ud af den første kolonne, elementet fra den anden.
SF_Array.ConvertToDictionary(Array_2D As Variant) As Variant
Matrix_1D: den første kolonne må udelukkende indeholde strenge med en længde > 0 i vilkårlig orden.
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
Tæl antallet af dimensioner i en matrix. Resultatet kan være større end to.
Hvis argumentet ikke er en matrix, returneres -1
Hvis matrixen ikke er initialiseret, returnes 0.
SF_Array.CountDims(Array_ND As Variant) As Integer
Matrix_ND: den matrix, der skal undersøges.
Sub Example_CountDims()
Dim a(1 To 10, -3 To 12, 5)
MsgBox SF_Array.CountDims(a) ' 3
End Sub
Byg et sæt, som en nul-baseret matrix ved at anvende differens-operatoren på de to input-matrixer. Resulterende elementer stammer fra den første matrix og ikke fra den anden.
Den resultende matrix er sortetet i stigende rækkefølge.
Begge input-matrixer skal være fyldt homogent, deres elementer skal være skalarer af den samme type. Tomme og Null-elemnter er forbudt.
Tekstsammenligning kan skelne mellem Store og små bogstaver eller ikke.
SF_Array.Difference(Array1_1D As Variant, Array2_1D As Variant[, CaseSensitive As Boolean]) As Variant
Matrix1_1D: En endimensionel reference-matrix, hvis elementer undersøges for fjernelse.
Matrix2_1D: En endimensionel matrix, hvis elementer fratrækkes den første input-matrix.
Store/små bogstaver: Kun hvis matrixen er fyldt med strenge, default = Falsk.
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
Skriv alle matrixens elementer i nummerrækkefølge til en tekstfil. Hvis filen allerede eksisterer, bliver den overskrevet uden varsel.
SF_Array.ExportToTextFile(Array_1D As Variant, FileName As String, [Encoding As String]) As Boolean
Matrix_1D: Matrixen, der skal eksporteres. Den må kun indeholde strenge.
Filnavn: navnet på den tekstfil, der indeholder dataene. Navnet udtrykkes som det er givet af den aktuelle Filnavngivelses-egenskab i tjenesten SF_FileSystem. Standard = any (både URL-formatet og det medfødte operativsystem format tillades).
Tegnsæt: Det tegnsæt. der burde bruges. Brug et af navnene oplistet i tensættene IANA. Bemærk, at LibreOffice måske ikke implementerer alle eksisterende tegnsæt. Standard er "UTF-8".
Sub Example_ExportToTextFile()
SF_Array.ExportToTextFile(Array("A","B","C","D"), "C:\Temp\A short file.txt")
End Sub
Udtræk en bestemt kolonne som en ny matrix fra en todimensionel matrix.
Dens nedre LBound og øvre UBound grænser er identiske med dem fra input-matrixens første dimension.
SF_Array.ExtractColumn(Array_2D As Variant, ColumnIndex As Long) As Variant
Array_2D (Matrix_2D): Den matrix, der skal udtrækkes fra.
ColumnIndex (Kolonneindeks): Det kolonnenummer der udtrækkes - skal være i intervallet [LBound, UBound] (NedreGrænse, ØvreGrænse).
Sub Example_ExtractColumn
'Opretter en 3x3 matrix: |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))
'Udtrækker den tredje kolonne: |3, 6, 9|
col = SF_Array.ExtractColumn(mat, 2)
End Sub
Udtræk en bestemt række som en ny mqtrix fra en to-dimensionel matrix.
Dens nedre LBound og øvre UBound grænser er identiske med dem i den anden dimension i input-matrixen.
SF_Array.ExtractRow(Array_2D As Variant, RowIndex As Long) As Variant
Array_2D (Matrix_2D): Den matrix, der skal udtrækkes fra.
RowIndex (Rækkeindeks): Den række, der skal udtrækkes - skal være i intervallet [LBound, UBound].
Sub Example_ExtractRow
'Opretter en 3x3 matrix: |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))
'Udtrækker den første række: |1, 2, 3|
row = SF_Array.ExtractRow(mat, 0)
End Sub
Stak alle enkelte elementer i et matrix og alle elemter i det undermatrixer ind i et nyt matrix uden undermatrixer. Tomme undermatrixer ignoreres og undermatrixer med et større antal dimensioner end en udflades ikke.
SF_Array.Flatten(Array_1D As Variant) As Variant
Matrix_1D: den forud-eksisterende matrix, kan være tom.
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
Du kan bruge metoden Flatten sammen med andre metoder som for eksempel Append eller Prepend til at sammenkæde et sæt af 1D-matrixer til et enkelt 1D-matrixer.
Herefter er der et eksempel på, hvordan metoderne Flatten og Append kan kombineres til at sammenkæde tre matrixer.
Sub Concatenate_Example
'Opretter tre matrixer til dette eksempel
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)
'Sammenkæder de tre matrixer til en enkelt 1D-matrix
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
Importer de data, der er indeholdt i en komma-separeret værdi-fil (CSV). Kommaet kan være erstattet af et vilkårligt tegn.
Det anvendelige CSV-format er beskrevet i IETF Common Format and MIME Type for CSV Files.
Hver linje i filen indeholder en komplet post (linjeopdeling er ikke tilladt).
Sekvenser som \n, \t ... efterrlades imidlertid uændrede. Brug metoden SF_String.Unescape() til at håndtere dem.
Metoden returnerer en to-dimensionel matrix, hvis rækker svarer til en enkelt post læst i filen og hvis kolonner svaret til et felt i posten. Der udføres ingen tjek af felttypernes sammenhæng på tværs af kolonner. Der gøres et bedste gæt på at identificere numeriske og dato-typer.
Hvis en linje indeholder færre eller flere felter en den første linje i filen, sættes et undtagelsesflag og matrixen afkortes. Hvis filstørrelsen overstiger grænsen for antallet af elementer (se inde i koden), skrives en advarsel og matrixen afkortes.
SF_Array.ImportFromCSVFile(FileName As String, [Delimiter As String], [DateFormat As String]) As Variant
Filnavn: navnet på tekstfilen, der indeholder dataene. Navnet udtrykkes som angivet af den aktuelle egenskab FileNaming i tjenesten SF_FileSystem. Standarden = vilkårlig (både URL-formatet og det operativsystemets eget format tillades).
Delimiter: Et enkelt tegn, sædvanligvis et komma, et semikolon eller et tabulatortegn. Standard = ",".
Datoformat: En særlig mekanisme håndterer datoer, når DateFormat er enten "YYYY-MM-DD", "DD-MM-YYYY" eller "MM-DD-YYYY". bindestregen (-) kan være erstattet af et punktum (.), en skråstreg (/) eller et mellemrum. Andre datoformater ignoreres. Datoer, der falder tilbage til "" anses som almindelig tekst.
Givet denne CSV-fil
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
Se i en endimensionel matrix efter et tal, en streng eller en dato. Tekstsammenligning kan skelne mellem Store og små bogstaver eller ej.
Hvis matrixen er sorteret, skal den være homogent fyldt, hvilket betyder, at alle elementer skal være skalarer af den samme type
(elementerne Empty og Null er ikke tilladt).
Resultatet af metoden er uforudsigeligt,
når matrixen annonceres som sorteret og faktisk ikke er det.
En binær søgning foretages på sorterede matrixer. Ellers scannes
matrixer fra top til bund og elementerne Empty og Null ignorereres.
Metoden returnerer LBound(input array) -1, hvis søgningen ikke lykkedes.
SF_Array.IndexOf(Array_1D, ToFind As Variant, [CaseSensitive As Boolean], [SortOrder As String]) As Long
Matrix_1D: den matrix, der skal scannes.
Skalfindes: et tal, en dato eller en streng, der skal findes.
Stort/småt: Kun til strengsammenligninger, standard = False.
Sorteringsrækkefølge: "ASC", "DESC" eller "" (= ikke sorteret, standard)
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
Indsæt de elementer, der er oplistet som argumenter, foran et givet indeks i input-matrixen.
Argumenter indsættes blindt. Hver af dem
kan være enten en skalar af vilkårlig type eller en undermatrix.
SF_Array.Insert(Array_1D As Variant, Before As Long, arg0 As Variant, [arg1 As Variant], ...) As Variant
Matrix_1D: den forudeksisterende matrix, kan være tom.
Foran: indekset, foran hvilket, der skal indsættes; skal være i intervallet [LBound, UBound + 1].
arg0, ...: en liste over elementer, der skal indsættes i 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
Indsæt et nyt element på sin plads i et sorteret matrix.
Matrixen skal være fyldt homogent, det vil sige, at at alle elementer skal være skalarer af den samme type.
Elementerne Empty og Null er ikke tilladt.
SF_Array.InsertSorted(Array_1D As Variant, Item As Variant, SortOrder As String, CaseSensitive As Boolean) As Variant
Matrix_1D: Matrixen, der skal sorteres.
Element: Den skalar, der skal indsættes, af samme type som de eksisterende matrix-elementer.
Sorteringsrækkefølge: "ASC" (standard) eller "DESC".
Stort/småt: Kun til strengsammenligninger, standard = 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
Byg et sæt som en nul-baseret matrix ved at anvende operatoren fællesmængde på de to inputmatrixer. Resulterende elementer er indeholdt i begge matrixer.
Den resulterende matrix sorteres i stigende rækkefølge.
Begge input-matrixer skal være homogent fyldt, med andre ord skal alle elementer være skalarer af den samme type. Elementerne Empty og Null er ikke tilladt.
Tekstsammenligning kan skelne med Store og små bogstaver eller ej.
SF_Array.Intersection(Array1_1D As Variant, Array2_1D As Variant[, CaseSensitive As Boolean]) As Variant
Array1_1D (Matrix_1D): Den første input-matrix.
Matrix2_1D: Den anden input-matrix.
Stort/småt: Gælder matrixer der befolket med tekstelementer, standard = 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
Sammenføj en todimensionel matrix med to skilletegn, en for kolonnerne. en for rækkerne.
SF_Array.Join2D(Array_2D As Variant, ColumnDelimiter As String, RowDelimiter As String, Quote As Boolean) As String
Matrix_2D: Hvert element skal være enten tekst, et tal, en dato eller en boolsk værdi.
Datoer transformeres til YYYY-MM-DD hh:mm:ss format.
Ugyldige elementer erstattes af strenge med nul-længde.
Kolonneskilletegn: Adskiller hver kolonne (standard = Tab/Chr(9)).
Rækkeskilletegn: adskiller hver række (standard = LineFeed/Chr(10))
Anførselstegn: hvis True, beskytter du strengene med dobbelte anførselstegn. Standarden er 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
Tilføj de oplistede elementer som argumenter i begyndelsen af input-matrixen
SF_Array.Prepend(Array_1D As Variant, arg0 As Variant, [arg1 As Variant], ...) As Variant
Matrix_1D: den forudeksisterende matrix; kan være tom.
arg0, ...: en liste over elementer, der skal indsættes først i Matrix_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
Indføj en ny kolonne forrest i den venstre side af en to-dimensionel matrix. Den resulterende matrix har de samme nedre grænser som den oprindelige todimensionelle matrix.
SF_Array.PrependColumn(Array_2D As Variant, Column As Variant) As Variant
Matrix_2D: den forudeksisterende matrix, kan være tom. Hvis den matrix har en dimension, betragtes den som den sidste kolonne i den resulterende todimensionelle matrix.
Kolonne: en en-dimensionwl matrix med lige så mange elementer, som der er rækker i Matrix_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
Indføj en ny række i begyndelsen af en todimensionel matrix. Den resulterende matrix har samme nedre grænser som den oprindelige todimensionelle matrix.
SF_Array.PrependRow(Array_2D As Variant, Row As Variant) As Variant
Matrix_2D: den forudeksisterende matrix; kan være tom. Hvis denne matrix har en dimension, betragtes den som den sidste række i den todimensionelle matrix.
Række : en endimensionel matrix, der indeholder lige så mange elementer, som der er rækker i Matrix_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
Initialiser en ny nul-baseret matrix med numeriske værdier.
SF_Array.RangeInit(From As [number], UpTo As [number] [, ByStep As [number]]) As Variant
Fra: værdien af det første element.
Optil: Det sidste element bør ikke overstige UpTo.
Trinvis: Differencen mellem to på hinanden følgende elementer (standard = 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
Returner den omvendte endimensionelle input-matrix.
SF_Array.Reverse(Array_1D As Variant) As Variant
Matrix_1D: Den matrix, der skal vendes.
Sub Example_Reverse()
Dim a As Variant
a = SF_Array.Reverse(Array("a", 2, 3, 4))
' (4, 3, 2, "a")
End Sub
Returner en vilkår permutation af en endimensionel matrix.
SF_Array.Shuffle(Array_1D As Variant) As Variant
Matrix_1D: Den matrix, der skal blandes.
Sub Example_Shuffle()
Dim a As Variant
a = SF_Array.Shuffle(Array(1, 2, 3, 4))
' Uforudsigelig
End Sub
Returner et undersæt af en endimensionel matrix.
SF_Array.Slice(Array_1D As Variant, From As Long, [UpTo As Long]) As Variant
Matrix_1D: Den matrix, der skal skæres ud.
Fra: Det laveste indeks i Array_1D af den delmatrix, der skal udtrækkes (From medtaget)
Optil : Det øverste indeks i Array_1D af den delmatrix, der skal udtrækkes (UpTo medtaget). Standard = Array_1Ds øvre grænse. Hvis UpTo < From er den returnerede matrix tom.
Sub Example_Slice()
Dim a As Variant
a = SF_Array.Slice(Array(1, 2, 3, 4, 5), 1, 3) ' (2, 3, 4)
End Sub
Sorter en endimensionel matrix i stigende eller faldende rækkefølge. Tekstsammenligninger kan skelne mellem Store og små bogstaver eller ikke.
Matrixen skal være homogent fyldt, hvilket betyder, at elementerne skal være dem samme type skalarer.
Elementerne Empty og Null er tilladt. Traditionelt er Empty < Null < enhver anden skalar værdi.
SF_Array.Sort(Array_1D As Variant, SortOrder As String, CaseSensitive As Boolean) As Variant
Matrix_1D: Den matrix, der skal sorteres.
Sorteringsrækkefølge: "ASC" (standard) eller "DESC".
CaseSensitive: Kun til strengsammenligninger, standard = 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
Returner en permutation af kolonner i en todimensionel matrix, sorteret efter værdierne i en given række.
Rækken skal være homogent fyldt, det vil sige, at alle elementer skal være skalarer af den samme type. Elementerne
Empty og Null er tilladte. Traditionelt er Empty < Null < enhver anden skalar værdi..
SF_Array.SortColumns(Array_1D As Variant, RowIndex As Long, SortOrder As String, CaseSensitive As Boolean) As Variant
Matrix_1D: Den matrix, der skal sorteres.
Rækkeindeks: Den rækkes indeks, som kolonnerne skal sorteres efter.
Sorteringsrækkefølge : "ASC" (standard) eller "DESC".
Stort/småt: Kun til strengsammenligninger, standard = 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
Returner en permutation af rækker i en todimensionel matrix, sorteret efter værdierne i en given kolonne.
kolonnen skal være homogent fyldt, derfor skal alle elementer være skalarer af den samme type.
Elementerne Empty og Null er tilladt, Traditionelt er Empty < Null < enhver anden skalar værdi.
SF_Array.SortRows(Array_1D As Variant, ColumnIndex As Long, SortOrder As String, CaseSensitive As Boolean) As Variant
Matrix_1D: Den matrix, der skal sorteres.
Rækkeindeks : indekset for den kolonne, hvis rækker skal sorteres.
Sorteringsrækkefølge: "ASC" (standard) eller "DESC".
Stort/småt: Kun til strengsammenligninger, standard = 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
Ombyt rækker og kolonner i en todimensionel matrix.
SF_Array.Transpose(Array_2D As Variant) As Variant
Matrix_2D: Den matrix, der skal transponeres.
Sub Example_Transpose()
- | 1, 2 | ' | 1, 3, 5 |
- SF_Array.Transpose(| 3, 4 |) ' | 2, 4, 6 |
- | 5, 6 |
End Sub
Fjern alle Null, Empty og nul-længde-indførsler fra en endimensionel matrix.
Strengelementer trimmes med funktionen LibreOffice Basic Trim() .
SF_Array.TrimArray(Array_1D As Variant) As Variant
Matrix_1D : Den matrix, der skal scannes.
Sub Example_TrimArray()
Dim a As Variant
a = SF_Array.TrimArray(Array("A","B",Null," D "))
' ("A","B","D")
End Sub
Byg et sæt som en nul-baseret matrix ved at anvende operatoren unionsmængde på de to input-matrixer. Resulterende elementer stammer fra begge matrixer.
Det resulterende matrix er sorteret i stigende rækkefølge.
Begge input-matrixer skal være homogent fyldt, deres elementer skal være skalarer af den samme type. Elementerne Empty og Null er ikke tilladte.
Tekstsammenligning kan skelne mellem Store og sSmå bogstaver eller ikke.
SF_Array.Union(Array1_1D As Variant, Array2_1D As Variant[, CaseSensitive As Boolean]) As Variant
Matrix1_1D : den første input-matrix.
Matrix2_1D : Den anden input-matrix.
Stort/småt: Kun hvis matrixerne er fyldt med strenge, standard = 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
Byg et sæt af unikke værdier, afledt fra input-matrixet.
Input-matrixen skal være homogent fyldt, dets elementer sskal være skalarer af den samme type. Elementerne Empty og Null er ikke tilladt.
Tekstsammenligninger kan skelne mellem Store bogstaver og små eller ikke.
SF_Array.Unique(Array_1D As Variant, CaseSensitive As Boolean]) As Variant
Matrix_1D: Input-matrixen.
Stort/småt: Kun hvis matrixen er befolket med tekster, standard = 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