ScriptForge.Array paslauga (SF_Array)

Turinys
Rodyklė 🔎︎

# ScriptForge.Array service

Pateikiamas vienmačių (vektorių) ir dvimačių masyvų (matricų) manipuliavimo ir transformavimo metodų rinkinys. Tai apima operacijų rinkinius, rūšiavimą, importavimą į tekstinius failus ir eksportavimą iš jų.

Šios paslaugos metodai gali būti naudojami tik vienmačiams ir dvimačiams masyvams, vienintelė išimtis yra CountDims metodas, kuriam tinka bet kokio matmenų skaičiaus masyvai.

Masyvo elementai gali būti bet kurio tipo reikšmės, įskaitant ir pačius masyvus.

## Paslaugos iškvietimas

Prieš naudojantis Array paslauga reikia įkelti ScriptForge biblioteką naudojantis:

          GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")

Įkėlus biblioteką bus sukurtas SF_Array objektas, kurį galima naudoti norint iškviesti metodus iš Array paslaugas.

Šie kodo fragmentai rodo įvairius būdus, kaip iškviesti metodus, esančius Array paslauga (pavyzdžiui, naudojamas metodas Pridėti):

          SF_Array.Append(...)

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

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

Metodas CreateScriptService galimas tik įkėlus ScriptForge biblioteką.

Metodai
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

Pirmasis daugumos metodų argumentas yra masyvo objektas. Jis visada perduodamas nuoroda ir lieka nepakitęs. Tokie metodai, kaip „Append“, „Prepend“ ir pan., grąžina naują masyvo objektą.

## Append

Įvedimo masyvo pabaigoje pridedami elementai, išvardyti kaip argumentai.

### Sintaksė:

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

### Parametrai:

Array_1D : iš pradžių masyvas gali būti tuščias.

arg0, ... : sąrašas elementų, kurie bus pridedami prie „Array_1D“.

### Pavyzdys:

          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

Dešinėje dviejų matmenų masyvo pusėje pridedamas naujas stulpelis. Gautas masyvas turi tuos pačius apatinius rėžius, kaip ir pradinio dviejų matmenų masyvo.

### Sintaksė:

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

### Parametrai:

Array_2D: esamas masyvas gali būti tuščias. Jei masyvas yra vienmatis, jis laikomas gauto dvimačio masyvo pirmuoju stulpeliu.

Naujas_stulpelis: vienmatis masyvas turi tiek elementų, kiek eilučių yra Array_2D masyve.

### Pavyzdys:

          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

Dešinėje dviejų matmenų masyvo pusėje pridedamas naujas stulpelis. Gautas masyvas turi tuos pačius apatinius rėžius, kaip ir pradinio dviejų matmenų masyvo.

### Sintaksė:

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

### Parametrai:

Array_2D: esamas masyvas gali būti tuščias. Jei masyvas yra vienmatis, jis laikomas gauto dvimačio masyvo pirmuoju stulpeliu.

Eilutė: Vienmatis masyvas turi tiek elementų, kiek yra Array_2D stulpelių.

### Pavyzdys:

          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

Patikrinkite, ar vienmačiame masyve yra tam tikras skaičius, tekstas ar data. Lyginant tekstą galima skirti didžiąsias ir mažąsias raides, arba ne.
Rikiuoti pradiniai masyvai turi būti užpildyti vienarūšiais duomenimis, kas reiškia, kad visi elementai turi būti to paties paprastojo tipo (elementai Tušti ir Nuliniai draudžiami).
Metodo rezultatas yra neapibrėžtas, kai masyvas skelbiamas surikiuotu, o iš tikrųjų nėra.
Dvejetainė paieška atliekama sutvarkius masyvą, priešingu atveju jis tiesiog nuskaitomas iš viršaus į apačią ir ignoruojami elementai Tušti ir Nuliniai.

### Sintaksė:

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

### Parametrai:

Array_1D : masyvas skaitymui.

ToFind : skaičius, data arba eilutė, kuriuos reikia rasti.

CaseSensitive : Tik lyginant eilutes, numatytoji reikšmė = False.

SortOrder : "ASC", "DESC" or "" (= nerikiuota, numatyta)

### Pavyzdys:

          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

Store the content of a 2-columns array into a ScriptForge.Dictionary object.
The key will be extracted from the first column, the item from the second.

### Sintaksė:

          SF_Array.ConvertToDictionary(Array_2D As Variant) As Variant

### Parametrai:

Masyvas_1D: pirmame stulpelyje turi būti tik eilutės, kurių ilgis > 0, bet kuria tvarka.

### Pavyzdys:

          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

Suskaičiuokite masyvo matmenų skaičių. Rezultatas gali būti didesnis nei du.
Jei argumentas nėra masyvas, tai grąžinama -1
Jei masyvas neinicijuotas, tai grąžina 0.

### Sintaksė:

          SF_Array.CountDims(Array_ND As Variant) As Integer

### Parametrai:

Array_ND : masyvas tikrinimui.

### Pavyzdys:

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

## Difference

Sukurkite rinkinį, kaip nulinį masyvą, taikydami skirtumo operatorių dviem pradiniams masyvams. Rezultatai gaunami iš pirmojo masyvo, o ne iš antrojo.
Gautas masyvas išrikiuojamas didėjimo tvarka.
Abi pradiniai masyvai turi būti užpildyti vienodai, jų elementai turi būti to paties tipo paprastieji duomenys. Draudžiami elementai Tušti ir Null.
Lyginant tekstą didžiosios ir mažosios raidės gali būti skiriamos arba neskiriamos.

### Sintaksė:

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

### Parametrai:

Array1_1D : Vienmatis nuorodų masyvas, kurio elementai tikrinami, ar reikia juos pašalinti.

Array2_1D : Vienmatis masyvas, kurio elementai atimami iš pirmojo pradinio masyvo.

CaseSensitive : Tik tiems masyvams, kurie užpildyti eilutėmis, numatyta = False.

### Pavyzdys:

          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

Surašo visus masyvo elementus nuosekliai į teksto failą. Jei toks failas jau yra, bus užrašoma ant viršaus be perspėjimo.

### Sintaksė:

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

### Parametrai:

Array_1D : Masyvas eksportavimui. Turi būti sudarytas tik iš eilučių.

Failo vardas: teksto failo, kuriame yra duomenys, pavadinimas. Pavadinimas nurodomas taip, kaip nurodyta dabartinės paslaugos SF_FileSystem savybėje FileNaming. Numatytasis = bet kuris (leidžiamas ir URL formatas, ir savosios operacinės sistemos formatas).

Kodavimas : Simbolių seka, kuri turi būti naudojama. Naudokite vieną iš čia išvardytų pavadinimų IANA character sets. Pastebėkime, kad „LibreOffice“ gali neįdiegti visų esamų simbolių rinkinių. Numatytasis parametras yra „UTF-8“.

### Pavyzdys:

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

## ExtractColumn

Ištraukite iš dvimačio masyvo konkretų stulpelį kaip naują masyvą.
Šio masyvo apatinis LBound ir viršutinis UBound rėžiai yra tokie pat, kaip ir pirmojo pradinio masyvo.

### Sintaksė:

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

### Parametrai:

Array_2D : Masyvas, iš kurio ištraukiama.

ColumnIndex : Stulpelio numeris, kurį reikia gauti, turi būti intervale [LBound, UBound].

### Pavyzdys:

          Sub Example_ExtractColumn
             'Sukuria 3x3 matricą: |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))
             'Ištraukia trečiąjį stulpelį: |3, 6, 9|
             col = SF_Array.ExtractColumn(mat, 2)
          End Sub

## ExtractRow

Ištraukite iš dvimačio masyvo konkretų stulpelį kaip naują masyvą.
Šio masyvo apatinis LBound ir viršutinis UBound rėžiai yra tokie pat, kaip ir pirmojo pradinio masyvo.

### Sintaksė:

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

### Parametrai:

Array_2D : Masyvas, iš kurio ištraukiama.

EilutėsIndeksas: Eilutės numeris, kurį reikia gauti, turi būti iš intervalo [ApRėžs, ViRėžis].

### Pavyzdys:

          Sub Example_ExtractRow
             'Sukuria 3x3 matricą: |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))
             'Ištraukia pirmąją eilutę: |1, 2, 3|
             row = SF_Array.ExtractRow(mat, 0)
          End Sub

## Flatten

Sudėkite visus atskirus masyvo elementus ir visus jo elementus į vieną naują masyvą. Tuščių dalinių masyvų nepaisoma. Daliniai masyvai, kurių matmenų skaičius yra didesnis nei vienas, nėra sugriaunami.

### Sintaksė:

          SF_Array.Flatten(Array_1D As Variant) As Variant

### Parametrai:

Array_1D : iš pradžių masyvas gali būti tuščias.

### Pavyzdys:

          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

Norėdami susieti vienmatį masyvų rinkinį į vieną vienmatį masyvą, galite naudoti Flatten metodą kartu su kitais metodais, pvz., Pridėti arba Prepend.

### Pavyzdys:

Kitas pavyzdys, kaip metodai Flatten ir Append gali sujungti tris masyvus.

          Sub Concatenate_Example
             'Šiam pavyzdžiui sukuria tris masyvus
             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)
             'Sujungia tris masyvus į vieną vienmatį masyvą
             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

Importuokite kableliais atskirtus failo (CSV) duomenis. Kablelį galima pakeisti bet kuriuo simboliu.

Taikomas CSV formatas aprašytas dokumente IETF bendraisi formatas ir MIME tipas CSV failams.

Kiekvienoje failo eilutėje yra visas įrašas (eilučių skaidyti negalima).
Tačiau tokios sekos kaip \n, \t , ... lieka nepakeistos. Joms valdyti naudokite metodą SF_eilutė .Unescape ().

Metodas pateikia dviejų matmenų masyvą, kurio eilutės atitinka vieną faile perskaitytą įrašą, o stulpeliai – įrašo lauką. Stulpelių lauko tipų atitikimas netikrinamas. Geriausia identifikuojami skaičių ir datų tipai.

Jei eilutėje yra mažiau ar daugiau laukų nei pirmoje failo eilutėje, bus formuojama išimtis. Tačiau tuščius eilutės tiesiog nepaisomos. Jei failo dydis viršija elementų skaičiaus limitą (žr. kodo viduje), įspėjima ir masyvas sutrumpinamas.

### Sintaksė:

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

### Parametrai:

Failo vardas: teksto failo, kuriame yra duomenys, pavadinimas. Pavadinimas nurodomas taip, kaip nurodyta dabartinės paslaugos SF_FileSystem savybėje FileNaming. Numatytasis = bet kuris (leidžiamas ir URL formatas, ir savosios operacinės sistemos formatas).

Skirtukas: Vienas simbolis, dažniausiai kablelis, kabliataškis arba tabuliacijos ženklas. Numatyta = ",".

DatosFormatas: specialus mechanizmas tvarko datas, kai DatosFormatos yra „MMMM-MM-DD“, „DD-MM-YYYY“ arba „MM-DD-YYYY“. Brūkšnelis (-) gali būti pakeistas tašku (.), pasviruoju brūkšniu (/) arba tarpu. Kiti datos formatai bus ignoruojami. Datos, kurių numatytasis formatas yra "", laikomos įprastu tekstu.

### Pavyzdys:

Duotas CSV failas:

          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

Vienmačiame masyve ieškokite skaičiaus, eilutės ar datos. Lyginant tekstą didžiosios ir mažosios raidės gali būti skiriamos.
Jei masyvas yra surikiuotas, jis turi būti užpildytas vienos rūšies duomenimis, o tai reiškia, kad visi elementai turi būti to paties paprastojo tipo (draudžiama naudoti Empty ir Null).
Metodo rezultatas yra neapibrėžtas, kai masyvas skelbimas surikiuotas, o iš tikrųjų taip nėra.
Dvejetainė paieška atliekama surikiuotuose masyvuose. Kitu atveju masyvai paprasčiausiai nuskaitomi iš viršaus į apačią ir ignoruojami elementai Empty ir Null.
Jei paieška nebuvo sėkminga, metodas grąžina ApRėžis (įvesties masyvas) - 1.

### Sintaksė:

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

### Parametrai:

Array_1D: masyvas skaitymui.

ToFind: skaičius, data arba eilutė, kuriuos reikia rasti.

CaseSensitive : Tik lyginant eilutes, numatytoji reikšmė = False.

SortOrder : "ASC", "DESC" arba "" (= nerikiuota, numatyta)

### Pavyzdys:

          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

Prieš nurodytą įvesties masyvo indeksą įterpkite elementus, nurodytus kaip argumentus.
Argumentai įterpiami aklai. Kiekvienas iš jų gali būti bet kokio paprastojo tipo duomuo arba masyvo dalis.

### Sintaksė:

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

### Parametrai:

Array_1D: iš pradžių masyvas gali būti tuščias.

Prieš: indeksas, prieš kurį reikia įterpti; turi būti iš intervalo [ApRėžis, ViRėžis + 1].

arg0, ...: elementų, kuriuos reikia įterpti, sąrašas Array_1D.

### Pavyzdys:

          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

Į surikiuotą masyvą įterpkite naują elementą.
Masyvas turi būti užpildytas vienos rūšies duomenimis, tai reiškia, kad visi elementai turi būti to paties paprastojo tipo duomenys. Elementai
Empty ir Null draudžiami.

### Sintaksė:

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

### Parametrai:

Array_1D: Masyvas rikiavimui.

Elementas : Paprastojo tipo reikšmė įterpimui, to paties tipo kaip ir esami masyvo elementai.

RikiavimoTvarka : "ASC" (numatyta) arba "DESC".

SkirtiRaidžiųLygį: Tik lyginant eilutes, numatytoji reikšmė = False.

### Pavyzdys:

          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

Sukurkite rinkinį, kaip nulinį masyvą, taikydami sankirtos aibės operatorių dviem pradiniams masyvams. Rezultatai įrašomi į abu masyvus.
Gautas masyvas rikiuojamas didėjimo tvarka.
Abi pradiniai masyvai turi būti užpildyti vienos rūšies duomenimis, kitaip tariant, visi elementai turi būti to paties paprastojo tipo duomenys. Draudžiami elementai yra Empty ir Null.
Lyginant tekstą didžiosios ir mažosios raidės gali būti skiriamos arba ne.

### Sintaksė:

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

### Parametrai:

Array1_1D: Pirmasis pradinis masyvas.

Array2_1D: Antrasis pradinis masyvas.

SkirtiRaidžiųLygį: Tik tiems masyvams, kurie užpildyti tekstiniais elementai, numatyta = False.

### Pavyzdys:

          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

Sujunkite dviejų matmenų masyvo elementus naudodami du skirtukus: vienas skirtas stulpeliams, kitas - eilutėms.

### Sintaksė:

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

### Parametrai:

Array_2D: Kiekvienas elementas turi būti tekstas, skaičius, data arba loginė reikšmė.
Datos transformuojamos į MMMM-MM-DD hh: mm: ss formatą.
Neteisingi elementai pakeičiami nulio ilgio eilute.

StulpeliųSkirtukas : Skiria kiekvieną stulpelį (numatyta = Tab/Chr(9)).

EilučiųSkirtukas: skiria kiekvieną eilutę (numatyta = LineFeed/Chr(10))

Kabutės: jei True, tai apgaubkite eilutes dvigubomis kabutėmis. Numatytoji būsena yra False.

### Pavyzdys:

          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

Pridėkite įvesties masyvo pradžioje elementus, nurodytus kaip argumentai.

### Sintaksė:

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

### Parametrai:

Array_1D: iš pradžių masyvas gali būti tuščias.

arg0, ...: pridedamų elementų sąrašas Array_1D.

### Pavyzdys:

          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

Kairėje dviejų matmenų masyvo pusėje pridedamas naujas stulpelis. Gautas masyvas turi tuos pačius apatinius rėžius, kaip ir pradinis dviejų matmenų masyvas.

### Sintaksė:

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

### Parametrai:

Array_2D: esamas masyvas gali būti tuščias. Jei masyvas yra vienmatis, jis laikomas gauto dvimačio masyvo paskutiniu stulpeliu.

Stulpelis: vienmatis masyvas turi tiek elementų, kiek eilučių yra Array_2D masyve.

### Pavyzdys:

          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

Viršuje dviejų matmenų masyvo pridedama eilutė. Gautas masyvas turi tuos pačius apatinius rėžius, kaip ir pradinis dviejų matmenų masyvas.

### Sintaksė:

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

### Parametrai:

Array_2D: esamas masyvas gali būti tuščias. Jei masyvas yra vienmatis, jis laikomas gauto dvimačio masyvo paskutine eilute.

Stulpelis: vienmatis masyvas turi tiek elementų, kiek eilučių yra Array_2D masyve.

### Pavyzdys:

          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

Inicijuokite naują skaitinį nulinių reikšmių masyvą.

### Sintaksė:

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

### Parametrai:

Nuo: pirmoji elemento reikšmė.

Iki: Paskutinis elementas neturi viršyti iki.

Žingsnis: Skirtumas tarp dviejų vienas po kito einančių elementų (numatytoji reikšmė = 1).

### Pavyzdys:

          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

Grąžinkite atvirkštinį vienmatį pradinį masyvą.

### Sintaksė:

          SF_Array.Reverse(Array_1D As Variant) As Variant

### Parametrai:

Array_1D: atvirkštinis masyvas.

### Pavyzdys:

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

## Shuffle

Grąžinama atsitiktinė vienmačio masyvo permutacija.

### Sintaksė:

          SF_Array.Shuffle(Array_1D As Variant) As Variant

### Parametrai:

Array_1D: masyvas permutacijai.

### Pavyzdys:

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

## Slice

Grąžinamas vienmačio masyvo poaibis.

### Sintaksė:

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

### Parametrai:

Array_1D: masyvas postūmiui.

Nuo: Masyvo poaibio ištrauktas apatinis rėžis Array_1D (Nuo įskaitytinai)

Iki: Masyvo poaibio ištrauktas viršutinis rėžis Array_1D (Iki imtinai). Numatyta = viršutinis masyvo Array_1D rėžis. Jei Iki < Nuo, tai grąžinamas tuščias masyvas.

### Pavyzdys:

          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

Reikia surikiuoti vienmatį masyvą didėjimo arba mažėjimo tvarka. Lyginant tekstus didžiosios ir mažosios raidės arba skiriamos, arba ne.
Masyvas turi būti užpildytas vienodo tipo duomenimis, t. y. elementai turi būti to paties paprastojo tipo reikšmės. Leistini elementai
Empty ir Null. Paprastai Empty < už Null < už bet kurią kitą skaliarinę reikšmę.

### Sintaksė:

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

### Parametrai:

Array_1D: masyvas rikiavimui.

RikiavimoTvarka : "ASC" (numatyta) arba "DESC".

SkirtiRaidžiųLygį: Tik lyginant eilutes, numatytoji reikšmė = False.

### Pavyzdys:

          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

Return a permutation of the columns of a two dimension array, sorted on the values of a given row.
The row must be filled homogeneously, which means that all items must be scalars of the same type.
Empty and Null items are allowed. Conventionally Empty < Null < any other scalar value.

### Sintaksė:

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

### Parametrai:

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.

### Pavyzdys:

          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

Return a permutation of the rows of a two dimension array, sorted on the values of a given column.
The column must be filled homogeneously, therefore all items must be scalars of the same type.
Empty and Null items are allowed. Conventionally Empty < Null < any other scalar value.

### Sintaksė:

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

### Parametrai:

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.

### Pavyzdys:

          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.

### Sintaksė:

          SF_Array.Transpose(Array_2D As Variant) As Variant

### Parametrai:

Array_2D : The array to transpose.

### Pavyzdys:

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

## TrimArray

Remove from a one dimension array all Null, Empty and zero-length entries.
String items are trimmed with LibreOffice Basic Trim() function.

### Sintaksė:

          SF_Array.TrimArray(Array_1D As Variant) As Variant

### Parametrai:

Array_1D : The array to scan.

### Pavyzdys:

          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.

### Sintaksė:

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

### Parametrai:

Array1_1D : The first input array.

Array2_1D : The second input array.

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

### Pavyzdys:

          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

Build a set of unique values derived from the input array.
The input array must be filled homogeneously, its items must be scalars of the same type. Empty and Null items are forbidden.
Text comparison can be case sensitive or not.

### Sintaksė:

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

### Parametrai:

Array_1D : The input array.

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

### Pavyzdys:

          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

Visos „ScriptForge“ „Basic“ įprastos funkcijos ar identifikatoriai, kuriuose prieš prefiksus yra pabraukimo ženklas „_“, yra skirti vidiniam naudojimui. Jie nenaudojami „Basic“ makrokomandose.

Susijusios temos

Masyvo funkcija

„Calc“ funkcijų iškvietimas

ScriptForge.Dictionary service