ScriptForge.Array service (SF_Array)

Innhold
Innholdsliste 🔎︎

# ScriptForge.Matrise tjeneste

Gir en samling metoder for å manipulere og transformere matriser med én dimensjon (vektorer) og matriser med to dimensjoner (matriser). Dette inkluderer settoperasjoner, sortering, import til og eksport fra tekstfiler.

Matriser med mer enn to dimensjoner kan ikke brukes med metodene i denne tjenesten, det eneste unntaket er CountDims-metoden som godtar matriser med et hvilket som helst antall dimensjoner.

Matriseelementer kan inneholde alle typer verdier, inkludert (under)matriser.

## Tjenesteaktivering

Før du bruker Matrise-tjenesten, må ScriptForge-biblioteket lastes ved å bruke:

          GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")

Når du laster biblioteket, opprettes SF_Array-objektet som kan brukes til å kalle metodene i Tabell-tjenesten.

Følgende kodebiter viser de ulike måtene å kalle metoder i Matrise-tjenesten (tilføy-metoden brukes som et eksempel):

          SF_Array.Append(...)

          Dim arr    :    arr = SF_Array
          arr.Append(...)

          Dim arr    :    arr = CreateScriptService("Array")
          arr.Append(...)

The CreateScriptService method is only available after you have loaded the ScriptForge library.

Methods
Append AppendColumn AppendRow Contains ConvertToDictionary CountDims Difference ExportToTextFile ExtractColumn ExtractRow | Flatten ImportFromCSVFile IndexOf Insert InsertSorted Intersection Join2D Prepend PrependColumn PrependRow | RangeInit Reverse Shuffle Slice Sort SortColumns SortRows Transpose TrimArray Union Unique

Det første argumentet for de fleste metoder er matrise-objektet som skal vurderes. Den sendes alltid ved referanse og forblir uendret. Metoder som Legg til, Legg til foran, osv. returnerer et nytt matrise-objekt etter at de er utført.

## Append

Legger til elementene som er oppført som argumenter på slutten av inndatamatrisen.

### Syntaks:

          SF_Array.Append(Array_1D As Variant, arg0 As Variant, [arg1 As Variant], ...) As Variant

### Parametre:

Array_1D : the pre-existing array, may be empty.

arg0, ... : a list of items to append to Array_1D.

### Eksempel:

          Sub Example_Append()
          Dim a As Variant
              a = SF_Array.Append(Array(1, 2, 3), 4, 5)
                  ' (1, 2, 3, 4, 5)
          End Sub

## AppendColumn

Legger til en ny kolonne på høyre side av en todimensjonal matrise. Den resulterende matrisen har de samme nedre grensene som den første todimensjonale matrisen.

### Syntaks:

          SF_Array.AppendColumn(Array_2D As Variant, New_Column As Variant) As Variant

### Parametre:

Array_2D : the pre-existing array, may be empty. If that array has only one dimension, it is considered as the first column of the resulting two-dimensional array.

New_Column : a 1-dimensional array with as many items as there are rows in Array_2D.

### Eksempel:

          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

## AppendRow

Legg til en ny rad nederst i en todimensjonal matrise. Den resulterende matrisen har de samme nedre grensene som den første todimensjonale matrisen.

### Syntaks:

          SF_Array.AppendRow(Array_2D As Variant, Row As Variant) As Variant

### Parametre:

Array_2D : the pre-existing array, may be empty. If that array has 1 dimension, it is considered as the first row of the resulting 2 dimension array.

Row : a 1D array with as many items as there are columns in Array_2D.

### Eksempel:

          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

## Contains

Sjekk om en én-dimensjons matrise inneholder et bestemt tall, tekst eller dato. Tekstsammenligning kan skille mellom store og små bokstaver eller ikke.
Sorterte inndatamatriser må fylles homogent, noe som betyr at alle elementer må være skalarer av samme type (Tom og Null elementer er forbudt).
Resultatet av metoden er uforutsigbart når matrisen kunngjøres som sortert og i realiteten ikke er det.
Et binært søk gjøres når matrisen er sortert, ellers skannes den ganske enkelt fra topp til bunn og Tom og Null elementer ignoreres.

### Syntaks:

          SF_Array.Contains(Array_1D, ToFind As Variant, [CaseSensitive As Boolean], [SortOrder As String]) As Boolean

### Parametre:

Array_1D : the array to scan.

ToFind : a number, a date or a string to find.

CaseSensitive : Only for string comparisons, default = False.

SortOrder : "ASC", "DESC" or "" (= not sorted, default)

### Eksempel:

          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

## ConvertToDictionary

Lagre innholdet i en 2-kolonner matrise i et ScriptForge.Dictionary-objektet.
Nøkkelen vil bli trukket ut fra den første kolonnen, elementet fra den andre.

### Syntaks:

          SF_Array.ConvertToDictionary(Array_2D As Variant) As Variant

### Parametre:

Array_1D : the first column must contain exclusively strings with a length > 0, in any order.

### Eksempel:

          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

## CountDims

Count the number of dimensions of an array. The result can be greater than two.
If the argument is not an array, returns -1
If the array is not initialized, returns 0.

### Syntaks:

          SF_Array.CountDims(Array_ND As Variant) As Integer

### Parametre:

Array_ND : the array to examine.

### Eksempel:

          Sub Example_CountDims()
          Dim a(1 To 10, -3 To 12, 5)
              MsgBox SF_Array.CountDims(a) ' 3
          End Sub

## Difference

Bygg et sett, som en nullbasert matrise, ved å bruke differanseoperatoren på de to inngangsmatrisene. Resulterende elementer kommer fra den første matrisen og ikke fra den andre.
Den resulterende matrisen er sortert i stigende rekkefølge.
Begge innput-matriser må fylles homogent, elementene deres må være skalarer av samme type. Tomme og Null elementer er forbudt.
Tekstsammenligning kan skille mellom store og små bokstaver.

### Syntaks:

          SF_Array.Difference(Array1_1D As Variant, Array2_1D As Variant[, CaseSensitive As Boolean]) As Variant

### Parametre:

Array1_1D : A 1 dimension reference array, whose items are examined for removal.

Array2_1D : A 1 dimension array, whose items are subtracted from the first input array.

CaseSensitive : Only if the arrays are populated with strings, default = False.

### Eksempel:

          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

## ExportToTextFile

Skriv alle elementer i matrisen sekvensielt til en tekstfil. Hvis filen allerede eksisterer, vil den bli overskrevet uten forvarsel.

### Syntaks:

          SF_Array.ExportToTextFile(Array_1D As Variant, FileName As String, [Encoding As String]) As Boolean

### Parametre:

Array_1D : The array to export. It must contain only strings.

FileName : the name of the text file containing the data. The name is expressed as given by the current FileNaming property of the SF_FileSystem service. Default = any (both the URL format and the native operating system format are admitted).

Encoding : The character set that should be used. Use one of the names listed in IANA character sets. Note that LibreOffice may not implement all existing character sets. Default is "UTF-8".

### Eksempel:

          Sub Example_ExportToTextFile()
              SF_Array.ExportToTextFile(Array("A","B","C","D"), "C:\Temp\A short file.txt")
          End Sub

## ExtractColumn

Trekk ut en spesifikk kolonne fra en todimensjonal matrise som en ny matrise.
Dens nedre LBound og øvre UBound grenser er identiske med den for den første dimensjonen til inngangsmatrisen.

### Syntaks:

          SF_Array.ExtractColumn(Array_2D As Variant, ColumnIndex As Long) As Variant

### Parametre:

Array_2D : The array from which to extract.

ColumnIndex : The column number to extract - must be in the interval [LBound, UBound].

### Eksempel:

          Sub Example_ExtractColumn
             'Oppretter en 3x3-matrise: |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))
             Trekker ut den tredje kolonnen: |3, 6, 9|
             col = SF_Array.ExtractColumn(mat, 2)
          End Sub

## ExtractRow

Trekk ut en spesifikk rad fra en todimensjonal matrise som en ny matrise.
Dens nedre LBound og øvre UBound grenser er identiske med den for den andre dimensjonen til inngangsmatrisen.

### Syntaks:

          SF_Array.ExtractRow(Array_2D As Variant, RowIndex As Long) As Variant

### Parametre:

Array_2D : The array from which to extract.

RowIndex : The row number to extract - must be in the interval [LBound, UBound].

### Eksempel:

          Sub Example_ExtractRow
             'Oppretter en 3x3-matrise: |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))
             Trekker ut den første raden: |1, 2, 3|
             row = SF_Array.ExtractRow(mat, 0)
          End Sub

## Flatten

Stable alle enkeltelementer i en matrise og alle elementer i undermatrisene i én ny matrise uten undermatriser. Tomme undermatriser ignoreres, og undermatriser med flere dimensjoner større enn én blir ikke flatet ut.

### Syntaks:

          SF_Array.Flatten(Array_1D As Variant) As Variant

### Parametre:

Array_1D : the pre-existing array, may be empty.

### Eksempel:

          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 bruke Flatte-metoden sammen med andre metoder som Legg til eller Legg til foran for å sette sammen et sett med 1D-matriser til en enkelt 1D-matrise.

### Eksempel:

Neste er et eksempel på hvordan metodene Flate og Legg til kan kombineres for å sette sammen tre matriser.

          Sub Concatenate_Example
             'Lager tre matriser for dette eksemplet
             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)
             'Setter sammen de tre matrisene til en enkelt 1D-matrise
             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

## ImportFromCSVFile

Importer dataene i en kommadelte verdier (CSV)-fil. Kommaet kan erstattes av et hvilket som helst tegn.

Det aktuelle CSV-formatet er beskrevet i IETF Common Format og MIME Type for CSV-filer.

Hver linje i filen inneholder en fullstendig post (linjedeling er ikke tillatt).
Sekvenser som \n, \t, ... forblir imidlertid uendret. Bruk metoden SF_String.Unescape() for å administrere dem.

Metoden returnerer en todimensjonal matrise hvis rader tilsvarer en enkelt post som er lest fra filen og hvis kolonner tilsvarer et felt i posten. Det foretas ingen kontroll av sammenhengen mellom felttypene på tvers av kolonnene. En beste gjetning vil bli gjort for å identifisere numeriske og datotyper.

Hvis en linje inneholder færre eller flere felt enn den første linjen i filen, vil et unntak bli skapt. Tomme linjer blir imidlertid ganske enkelt ignorert. Hvis størrelsen på filen overskrider grensen for antall elementer (se inne i koden), utløses en advarsel og matrisen avkortes.

### Syntaks:

          SF_Array.ImportFromCSVFile(FileName As String, [Delimiter As String], [DateFormat As String]) As Variant

### Parametre:

FileName : the name of the text file containing the data. The name is expressed as given by the current FileNaming property of the SF_FileSystem service. Default = any (both the URL format and the native operating system format are admitted).

Delimiter : A single character, usually, a comma, a semicolon or a TAB character. Default = ",".

DateFormat : A special mechanism handles dates when DateFormat is either "YYYY-MM-DD", "DD-MM-YYYY" or "MM-DD-YYYY". The dash (-) may be replaced by a dot (.), a slash (/) or a space. Other date formats will be ignored. Dates defaulting to "" are considered as normal text.

### Eksempel:

Given this CSV file:

          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

## IndexOf

Se i en éndimensjons matrise etter et tall, en streng eller en dato. Tekstsammenligning kan skille mellom store og små bokstaver.
Hvis matrisen er sortert, må den fylles homogent, noe som betyr at alle elementer må være skalarer av samme type (Tom og Null elementer er forbudt).
Resultatet av metoden er uforutsigbart når matrisen settes til sortert og faktisk ikke er det.
Et binært søk utføres på sorterte matriser. Ellers skannes matriser ganske enkelt fra topp til bunn, og Tomme og Null elementer ignoreres.
Metoden returnerer LBound(innputt matrise) - 1 hvis søket ikke var vellykket.

### Syntaks:

          SF_Array.IndexOf(Array_1D, ToFind As Variant, [CaseSensitive As Boolean], [SortOrder As String]) As Long

### Parametre:

Array_1D : the array to scan.

ToFind : a number, a date or a string to find.

CaseSensitive : Only for string comparisons, default = False.

SortOrder : "ASC", "DESC" or "" (= not sorted, default)

### Eksempel:

          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

## Insert

Sett inn før en gitt indeks for inndatamatrisen elementene som er oppført som argumenter.
Argumenter settes inn blindt. Hver av dem kan enten være en skalar av hvilken som helst type eller en undergruppe.

### Syntaks:

          SF_Array.Insert(Array_1D As Variant, Before As Long, arg0 As Variant, [arg1 As Variant], ...) As Variant

### Parametre:

Array_1D : the pre-existing array, may be empty.

Before : the index before which to insert; must be in the interval [LBound, UBound + 1].

arg0, ... : a list of items to insert inside Array_1D.

### Eksempel:

          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

## InsertSorted

Insert in a sorted array a new item on its place.
The array must be filled homogeneously, meaning that all items must be scalars of the same type.
Empty and Null items are forbidden.

### Syntaks:

          SF_Array.InsertSorted(Array_1D As Variant, Item As Variant, SortOrder As String, CaseSensitive As Boolean) As Variant

### Parametre:

Array_1D : The array to sort.

Item : The scalar value to insert, of the same type as the existing array items.

SortOrder : "ASC" (default) or "DESC".

CaseSensitive : Only for string comparisons, default = False.

### Eksempel:

          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

## Intersection

Bygg et sett, som en nullbasert matrise, ved å bruke skjæringssettoperatoren på de to inngangsmatrisene. Resulterende elementer finnes i begge matriser.
Den resulterende matrisen er sortert i stigende rekkefølge.
Begge innputt-matriser må fylles homogent, med andre ord må alle elementer være skalarer av samme type. Tomme og Null elementer er forbudt.
Tekstsammenligning kan skille mellom store og små bokstaver eller ikke.

### Syntaks:

          SF_Array.Intersection(Array1_1D As Variant, Array2_1D As Variant[, CaseSensitive As Boolean]) As Variant

### Parametre:

Array1_1D : The first input array.

Array2_1D : The second input array.

CaseSensitive : Applies to arrays populated with text items, default = False.

### Eksempel:

          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

## Join2D

Slå sammen en todimensjonal matrise med to skilletegn, én for kolonnene, én for radene.

### Syntaks:

          SF_Array.Join2D(Array_2D As Variant, ColumnDelimiter As String, RowDelimiter As String, Quote As Boolean) As String

### Parametre:

Array_2D : Each item must be either text, a number, a date or a boolean.
Dates are transformed into the YYYY-MM-DD hh:mm:ss format.
Invalid items are replaced by a zero-length string.

ColumnDelimiter : Delimits each column (default = Tab/Chr(9)).

RowDelimiter: delimits each row (default = LineFeed/Chr(10))

Quote : if True, protect strings with double quotes. The default is False.

### Eksempel:

          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

## Prepend

Sett foran på begynnelsen av inndatamatrisen elementene som er oppført som argumenter.

### Syntaks:

          SF_Array.Prepend(Array_1D As Variant, arg0 As Variant, [arg1 As Variant], ...) As Variant

### Parametre:

Array_1D : the pre-existing array, may be empty.

arg0, ... : a list of items to prepend to Array_1D.

### Eksempel:

          Sub Example_Prepend()
          Dim a As Variant
              a = SF_Array.Prepend(Array(1, 2, 3), 4, 5)
                  ' (4, 5, 1, 2, 3)
          End Sub

## PrependColumn

Sett en ny kolonne foran på venstre side av en todimensjonal matrise. Den resulterende matrisen har de samme nedre grensene som den første todimensjonale matrisen.

### Syntaks:

          SF_Array.PrependColumn(Array_2D As Variant, Column As Variant) As Variant

### Parametre:

Array_2D : the pre-existing array, may be empty. If that array has 1 dimension, it is considered as the last column of the resulting 2 dimension array.

Column : a 1 dimension array with as many items as there are rows in Array_2D.

### Eksempel:

          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

## PrependRow

Prepend at the beginning of a two dimension array a new row. The resulting array has the same lower boundaries as the initial two dimension array.

### Syntaks:

          SF_Array.PrependRow(Array_2D As Variant, Row As Variant) As Variant

### Parametre:

Array_2D : the pre-existing array, may be empty. If that array has 1 dimension, it is considered as the last row of the resulting 2 dimension array.

Row : a 1 dimension array containing as many items as there are rows in Array_2D.

### Eksempel:

          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

## RangeInit

Initialiser en ny nullbasert matrise med numeriske verdier.

### Syntaks:

          SF_Array.RangeInit(From As [number], UpTo As [number] [, ByStep As [number]]) As Variant

### Parametre:

From : value of the first item.

UpTo : The last item should not exceed UpTo.

ByStep : The difference between two successive items (default = 1).

### Eksempel:

          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

## Reverse

Returner den omvendte éndimensjonale inndatamatrisen.

### Syntaks:

          SF_Array.Reverse(Array_1D As Variant) As Variant

### Parametre:

Array_1D : The array to reverse.

### Eksempel:

          Sub Example_Reverse()
          Dim a As Variant
              a = SF_Array.Reverse(Array("a", 2, 3, 4))
                  ' (4, 3, 2, "a")
          End Sub

## Shuffle

Return a random permutation of a one dimension array.

### Syntaks:

          SF_Array.Shuffle(Array_1D As Variant) As Variant

### Parametre:

Array_1D : The array to shuffle.

### Eksempel:

          Sub Example_Shuffle()
          Dim a As Variant
              a = SF_Array.Shuffle(Array(1, 2, 3, 4))
                  ' Unpredictable
          End Sub

## Slice

Return a subset of a one dimension array.

### Syntaks:

          SF_Array.Slice(Array_1D As Variant, From As Long, [UpTo As Long]) As Variant

### Parametre:

Array_1D : The array to slice.

From : The lower index in Array_1D of the subarray to extract (From included)

UpTo : The upper index in Array_1D of the subarray to extract (UpTo included). Default = upper bound of Array_1D. If UpTo < From then the returned array is empty.

### Eksempel:

          Sub Example_Slice()
          Dim a As Variant
              a = SF_Array.Slice(Array(1, 2, 3, 4, 5), 1, 3) ' (2, 3, 4)
          End Sub

## Sort

Sorter en éndimensjons matrise i stigende eller synkende rekkefølge. Tekstsammenligninger kan skille mellom store og små bokstaver eller ikke.
Matrisen må fylles homogent, noe som betyr at elementer må være skalarer av samme type.
Tomme og Null elementer er tillatt. Konvensjonelt Tom < Null < enhver annen skalarverdi.

### Syntaks:

          SF_Array.Sort(Array_1D As Variant, SortOrder As String, CaseSensitive As Boolean) As Variant

### Parametre:

Array_1D : The array to sort.

SortOrder : "ASC" (default) or "DESC".

CaseSensitive : Only for string comparisons, default = False.

### Eksempel:

          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

## SortColumns

Returner en permutasjon av kolonnene i en todimensjonal matrise, sortert etter verdiene til en gitt rad.
Raden skal fylles homogent, noe som betyr at alle elementer må være skalarer av samme type.
Tomme og Null elementer er tillatt. Konvensjonelt Empty < Null < enhver annen skalarverdi.

### Syntaks:

          SF_Array.SortColumns(Array_1D As Variant, RowIndex As Long, SortOrder As String, CaseSensitive As Boolean) As Variant

### Parametre:

Array_1D : The array to sort.

RowIndex : The index of the row to sort the columns on.

SortOrder : "ASC" (default) or "DESC".

CaseSensitive : Only for string comparisons, default = False.

### Eksempel:

          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

## SortRows

Returner en permutasjon av radene i en todimensjonal matrise, sortert etter verdiene til en gitt kolonne.
Kolonnen må fylles homogent, derfor må alle elementer være skalarer av samme type.
Tomme og Null elementer er tillatt. Konvensjonelt Tom < Null < enhver annen skalarverdi.

### Syntaks:

          SF_Array.SortRows(Array_1D As Variant, ColumnIndex As Long, SortOrder As String, CaseSensitive As Boolean) As Variant

### Parametre:

Array_1D : The array to sort.

RowIndex : The index of the column to sort the rows on.

SortOrder : "ASC" (default) or "DESC".

CaseSensitive : Only for string comparisons, default = False.

### Eksempel:

          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

## Transpose

Swap rows and columns in a two dimension array.

### Syntaks:

          SF_Array.Transpose(Array_2D As Variant) As Variant

### Parametre:

Array_2D : The array to transpose.

### Eksempel:

          Sub Example_Transpose()
          -                       | 1, 2 |  ' | 1, 3, 5 |
          -    SF_Array.Transpose(| 3, 4 |) ' | 2, 4, 6 |
          -                       | 5, 6 |
          End Sub

## TrimArray

Fjern alle Null, Tomme og null-lengde oppføringer fra en éndimensjons matrise.
Strengelementer trimmes med LibreOffice Basic Trim()-funksjonen.

### Syntaks:

          SF_Array.TrimArray(Array_1D As Variant) As Variant

### Parametre:

Array_1D : The array to scan.

### Eksempel:

          Sub Example_TrimArray()
          Dim a As Variant
              a = SF_Array.TrimArray(Array("A","B",Null," D "))
                  ' ("A","B","D")
          End Sub

## Union

Build a set, as a zero-based array, by applying the union operator on the two input arrays. Resulting items originate from both arrays.
The resulting array is sorted in ascending order.
Both input arrays must be filled homogeneously, their items must be scalars of the same type. Empty and Null items are forbidden.
Text comparison can be case sensitive or not.

### Syntaks:

          SF_Array.Union(Array1_1D As Variant, Array2_1D As Variant[, CaseSensitive As Boolean]) As Variant

### Parametre:

Array1_1D : The first input array.

Array2_1D : The second input array.

CaseSensitive : Only if the arrays are populated with strings, default = False.

### Eksempel:

          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

## Unique

Bygg et sett med unike verdier utledet fra inndatamatrisen.
Inndatamatrisen må fylles homogent, elementene må være skalarer av samme type. Tomme og Null elementer er forbudt.
Tekstsammenligning kan skille mellom store og små bokstaver.

### Syntaks:

          SF_Array.Unique(Array_1D As Variant, CaseSensitive As Boolean]) As Variant

### Parametre:

Array_1D : The input array.

CaseSensitive : Only if the array is populated with texts, default = False.

### Eksempel:

          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

All ScriptForge Basic routines or identifiers that are prefixed with an underscore character "_" are reserved for internal use. They are not meant be used in Basic macros.

Lignende emner

Array Functions

Calling Calc Functions

ScriptForge.Dictionary service