Pomoc za LibreOffice 25.8
Skići zběrku metodow za manipulaciju a přetworjenje matriksow z jednej dimensiju (wektory) a matriksy z dwěmaj dimensijomaj (matriksy). To operacije set, sortěrowanje, importowanje z a eksportowanje do tekstowych datajow wopřijima.
Matriksy z wjace hač dwěmaj dimensijomaj njedadźa so z metodami w tutej słužbje wužiwać, jeničke wuwzaće je metoda CountDims, kotraž matriksy z někajkejžkuli ličbu dimensijow akceptuje.
Matriksowe zapiski móža někajku hódnotu wobsahować, inkluziwnje (pod-)matriksy.
Prjedy hač so słužba array wužiwa, dyrbi so biblioteka ScriptForge začitać přez:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
Hdyž so biblioteka začita, so objekt SF_Array wutwori, kotryž da so wužiwać, zo by metody w słužbje Array wuwołał.
Slědowace kodowe šlipki rozdźělne móžnosće pokazuja, zo bychu metody w słužbje Array wuwołali (metoda Append so jako přikład wužiwa):
Dim arr : arr = Array(1, 2, 3)
arr = SF_Array.Append(arr, 4)
Dim arr : arr = Array(1, 2, 3)
Dim svc : svc = SF_Array
arr = svc.Append(arr, 4)
Dim arr : arr = Array(1, 2, 3)
Dim svc : svc = CreateScriptService("Array")
arr = svc.Append(arr, 4)
Dokelž Python ma zatwarjenu podpěru za lisćiny a tupele, je najwjace metodow w słužbje Array jenož za skripty Basic k dispoziciji. Jeničke wuwzaće je ImportFromCSVFile, kotraž so w Basic kaž tež w Python podpěruje.
Prěni argument najwjace metodow je wotpowědny matriksowy objekt. Přepodawa so přeco po referency a wostawa njezměnjeny. Metody kaž Append, Prepend atd. nowy matriksowy objekt po swojim wuwjedźenju wróćeja.
Připowěša ke kóncej zapodawanskeje matriksy zapiski, kotrež su jako argumenty nalistowane.
svc.Append(array_1d: any[0..*], arg0: any, [arg1: any] ...): any[0..*]
array_1d: Hižo eksistowaca matriks, móže prózdna być.
arg0, arg1, ...: Zapiski, kotrež so array_1d připowěšeja.
Dim a As Variant
a = SF_Array.Append(Array(1, 2, 3), 4, 5)
' (1, 2, 3, 4, 5)
Připowěša nowu špaltu naprawo wot dwudimensionalneje matriksy. Rezultowaca matriks na samsne delnje mjezy kaž spočatna dwudimensionalna matriks.
svc.AppendColumn(array_2d: any[0..*, 0..*], column: any[0..*]): any[0..*, 0..*]
array_2: Hižo eksistowaca matriks, móže prózdna być. Jeli tuta matriks jenož jednu dimensiju ma, wobhladuje so jako prěnja špalta rezultowaceje dwudimensionalneje matriksy wobhladuje.
column: Jednodimensionalna matriks z telko zapiskami kaž su linki w array_2.
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
Připowěsńće deleka na dwudimensionalnej matriksy nowu linku. Rezultowaca matriks ma samsne delnje mjezy kaž spočatna dwudimensionalna matriks.
svc.AppendRow(array_2d: any[0..*, 0..*], row: any[0..*]): any[0..*, 0..*])
array_2d: Hižo eksistowaca matriks, móže prózdna być. Jeli tuta matriks jednu dimensiju ma, wobhladuje so jako prěnja linka rezultowaceje dwudimensionalneje matriksy.
row: Jednodimensionalna matriks z telko zapiskami kaž su špalty w array_2d.
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
Přepruwuje, hač jednodimensionalna matriks wěstu ličbu, tekst abo datum wobsahuje. Tekstowe přirunanje móže na wulkopisanje dźiwać abo nic.
Sortěrowane zapodawanske matriksy dyrbja so homogenje pjelnić, to rěka, wšě zapiski dyrbja skalary samsneho typa być (elementy Empty a Null su zakazane).
Wuslědk metody předwidźomny njeje, hdyž so matriks jako sortěrowana připowědźuje a we woprawdźitosći njeje.
Binarne pytanje so přewjedźe, hdyž matriks je sortěrowana, hewak so prosće wot horjeka do deleka skenuje a zapiski Empty a Null so ignoruja.
svc.Contains(array_1d: any[0..*], tofind: any, casesensitive: bool = False, sortorder: str = ""): bool
array_1d: Matriks, kotraž so ma skenować.
tofind: Ličba, datum abo znamješkowy rjećazk, kotrež so maja pytać.
casesensitive: Jenož za přirunanje znamješkowych rjećazkow (standard = false).
sortorder: Móže pak "ASC", "DESC" pak "" (njesortěrowany) być. Standardna hódnota je "".
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
Składujće wobsah dwušpaltoweje matriksy do objekta ScriptForge.Dictionary.
Kluč so z prěnjeje špalty ekstrahuje, zapisk z druheje.
svc.ConvertToDictionary(array_2d: any[0..*, 0..1]): obj
array_2d: Daty, kotrež so maja do objekta ScriptForge.Dictionary přetworić.
Prěnja špalta smě jenož znamješkowe rjećazki z dołhosću wobsahować, kotraž je wjetša hač nula, w někajkim porjedźe. Tute hódnoty budu so jako popisy w słowniku wužiwać.
Druha špalta daty wobsahuje, kotrež so wotpowědnemu popisej w słowniku připokazuja.
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
Wutworja kopiju jedno- abo dwudimensionalneje matriksy.
svc.Copy(array_nd: any[0..*]): any[0..*]
svc.Copy(array_nd: any[0..*, 0..*]): any[0..*, 0..*]
array_nd: Jedno- abo dwudimensionalna matriks, kotraž so ma kopěrować.
Jednore připokazanje objekta Array swoju referencu kopěruje, město toho zo by kopiju wobsaha objekta wutworiło. Hlejće slědowacy přikład:
Dim a as Variant, b as Variant
a = Array(1, 2, 3)
' Slědowace připokazanje so přez referencu přewjedźe
b = a
' Tohodla so tež "a" změni, hdyž so "b" změni
b(0) = 10
MsgBox a(0) ' 10
Hdyž so metoda Copy wužiwa, so kopija cyłeho objekta Array wutworja. W slědowacym přikładźe stej a a b rozdźělnej objektaj a hdyž hódnoty w b změniće, so to na hódnoty w a njewuskutkuje.
Dim a as Variant, b as Variant
a = Array(1, 2, 3)
' Wutworja kopiju "a" z pomocu metody "Copy"
b = SF_Array.Copy(a)
b(0) = 10
MsgBox a(0) ' 1
Liči ličbu dimensijow matriksy. Wuslědk móže wjetši hač dwaj być.
Jeli argument matriks njeje, so -1 wróći.
Jeli matriks njeje inicializowana, so 0 wróći.
svc.CountDims(array_nd: any): int
array_nd: Matriks, kotraž so ma přepytować.
Dim a(1 To 10, -3 To 12, 5)
MsgBox SF_Array.CountDims(a) ' 3
Wutworja sadźbu jako matriks na bazy nula přez to, zo diferencny operator na dwě zapodawanskej matriksy nałožuje. Rezultowace zapiski z prěnjeje matriksy pochadźeja a nic z druheje.
Rezultowaca matriks so w postupowacym porjedźe sortěruje.
Wobě zapodawanskej matriksy dyrbitej so homogenje pjelnić, jeju zapiski dyrbja skalary samsneho typa być. ZapiskiEmpty a Null su zakazane.
Tekstowe přirunanje móže na wulkopisanje dźiwać abo nic.
svc.Difference(array1_1d: any[0..*], array2_1d: any[0..*], casesensitive: bool = False): any[0..*]
array_1d: Jednodimensionalna referencna matriks, kotrejež zapiski so za wotstronjenjom přepytuja.
array2_1d: Jednodimensionalny matriks, kotrejež zapiski so wot prěnjeje zapodawanskeje matriksy subtrahuja.
casesensitive: Tutón argument je jenož nałožujomny, jeli su matriksy ze znamješkowymi rjećazkami wupjelnjene (standard = false).
Dim a As Variant
a = SF_Array.Difference(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("A", "B")
Pisa wšě zapiski matriksy jedyn za druhim do tekstoweje dataje. Jeli dataja hižo eksistuje, budźe so bjez warnowanja přepisować.
svc.ExportToTextFile(array_1d: any[0..*], filename: str, [encoding: str]): bool
array_1d: Matriks, kotraž so ma eksportować. Smě jenož znamješkowe rjećazki wobsahować.
filename: Mjeno tekstoweje dataje, do kotrejež so daty pisaja. Mjeno dyrbi so po aktualnej kajkosći FileNaming słužby SF_FileSystem zwuraznić.
encoding: Znamješkowa sadźba, kotraž měła so wužiwać. Wužiwajće jedne z mjenow, kotrež su w znamješkowych sadźbachIANA nalistowane. Dźiwajće na to, zo LibreOffice njemóže wšě eksistowace znamješkowe sadźby (standard je "UTF-8") implementować.
SF_Array.ExportToTextFile(Array("A","B","C","D"), "C:\Temp\A short file.txt")
Ekstrahuje wěstu špaltu z dwudimensionalneje matriksy jako nowu matriks.
Jeje delnja mjeza LBound a hornja mjeza UBound stej tymaj prěnjeje dimensije zapodawanskeje matriksy identiskej.
svc.ExtractColumn(array_2d: any[0..*, 0..*], columnindex: int): any[0..*, 0..*]
array_2d: Matriks, z kotrejež so ma ekstrahować.
columnindex: Ličba špalty, kotraž so ma ekstrahować – dyrbi w interwalu [LBound, UBound] być.
' Wutworja matriks 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))
' Ekstrahuje třeću špaltu: |3, 6, 9|
col = SF_Array.ExtractColumn(mat, 2)
Ekstrahuje wěstu linku z dwudimensionalneje matriksy jako nowu matriks.
Jeje delnja mjeza LBound a hornja mjeza UBound stej tymaj druheje dimensije zapodawanskeje matriksy identiskej.
svc.ExtractRow(array_2d: any[0..*, 0..*], rowindex: int): any[0..*, 0..*]
array_2d: Matriks, z kotrejež so ma ekstrahować.
rowindex: Ličba linki, kotraž so ma ekstrahować – dyrbi w interwalu [LBound, UBound] być.
' Wutworja matriks 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))
' Ekstrahuje prěnju linku: |1, 2, 3|
row = SF_Array.ExtractRow(mat, 0)
Stapluje wšě jednotliwe zapiski matriksy a wšě zapiski w jeje podmatriksach do jedneje noweje matriksy bjez podmatriksow. Prózdne podmatriksy so ignoruja a podmatriksy z ličbu dimensijow, kotraž je wjetša hač jedna, so wopłonjeja.
svc.Flatten(array_1d: any[0..*]): any[0..*]
array_1d: Hižo eksistowaca matriks, móže prózdna być.
Dim a As Variant
a = SF_Array.Flatten(Array(Array(1, 2, 3), 4, 5))
' (1, 2, 3, 4, 5)
Móžeće metodu Flatten hromadźe z druhimi metodami kaž Append abo Prepend wužiwać, zo byšće sadźbu jednodimensionalnych matriksow do jednotliweje jednodimensionalneje matriksy zwjazał.
Přichodny je přikład za to, kak metodźe Flatten a Append datej so kombinować, zo bychu so tři matriksy zwjazali.
' Wutworja tři matriksy za tutón přikład
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)
' Zwjazuje tři matriksy do jednotliweje jednodimensionalneje matriksy
Dim arr as Variant
arr = SF_Array.Flatten(SF_Array.Append(a, b, c))
'(1, 2, 3, 4, 5, 6, 7, 8, 9)
Importuje daty, kotrež su w dataji z přez komu wotdźělenymi hódnotami (CSV) wobsahowane. Koma dyrbi so přez druhe znamješko wuměnić.
Nałožujomny format CSV so w IETF Common Format and MIME Type for CSV Files wopisuje.
Kóžda linka w dataji połnu datowu sadźbu wobsahuje (dźělenje linkow dowolene njeje).
Ale sekwency kaž \n, \t, … njezměnjene wostawaja. Wužiwajće metodu SF_String.Unescape(), zo byšće je rjadował.
Metoda dwudimensionalnu matriks wróća, kotrejež linki jednotliwej datowej sadźbje wotpowěduja, kotraž je so w dataji čitała a kotrejež špalty polu datoweje sadźby wotpowěduja. Koherenca pólnych typow so přez špalty njepřepruwuje. Čini so najlěpše móžne trochowanje, zo bychu so numeriske a datumowe typy identifikowali.
Jeli linka mjenje abo wjace polow hač prěnja linka w dataji wobsahuje, so wuwzaće wuwabi. Prózdne linki wšak so prosće ignoruja. Jeli wulkosć dataje ličbu zapiskow překročuje (hlejće w kodźe), so warnowanje wuwabi a matriks so wotrěza.
svc.ImportFromCSVFile(filename: str, delimiter: str = ',', dateformat: str = ''): any[0..*]
filename: Mjeno tekstoweje dataje, kotraž daty wobsahuje. Mjeno dyrbi so po aktualnej kajkosći FileNaming słužby SF_FileSystem zwuraznić.
delimiter: Jednotliwe znamješko, zwjetša koma, semikolon abo tabulatorowe znamješko (standard = ",").
dateformat: Specialny mechanizm z datumami wobchadźa, hdyž dateformat je pak "LLLL-MM-DD", "DD-MM-LLLL" pak "MM-DD-LLLL". Wjazawka (-) da so z dypkom (.), nakósnej smužku (/) abo mjezotu wuměnić. Druhe datumowe formaty so ignoruja. Datumy, kotrež su po standardźe prózdny znamješkowy rjećazk ""m so jako normalny tekst wobhladuja.
Wobhladajće sej dataju CSV "myFile.csv" ze slědowacym wobsahom:
Mjeno,narodnydźeń,adresa,město
Anna,31.03.2002,"Rue de l'Eglise, 21",Toulouse
Fred,04.05.1998,"Rue Albert Einstein, 113A",Carcassonne
Slědowace přikłady w Basic a Python wobsah dataje CSV do objekta Array čitaja.
Dim arr As Variant
arr = SF_Array.ImportFromCSVFile("C:\Temp\mojaDataja.csv", DateFormat := "YYYY/MM/DD")
MsgBox arr(0, 3) ' Město
MsgBox arr(1, 2) ' Rue de l'église, 21
MsgBox arr(1, 3) ' Toulouse
from scriptforge import CreateScriptService
svc = CreateScriptService("Array")
bas = CreateScriptService("Basic")
arr = svc.ImportFromCSVFile(r"C:\Temp\mojaDataja.csv", dateformat = "YYYY/MM/DD")
bas.MsgBox(arr[0][3]) # Město
bas.MsgBox(arr[1][2]) # Rue de l'église, 21
bas.MsgBox(arr[1][3]) # Toulouse
Pytajće w jednodimensionalnej matriksy za ličbu, znamješkowym rjećazkom abo datumom. Tekstowe přirunanje móže na wulkopisanje dźiwać abo nic.
Jeli so matriks sortěruje, dyrbi so homogenje pjelnić, štož rěka, zo wšě zapiski dyrbja skalary samsneho typa być (zapiski Empty a Null su zakazane).
Wuslědk metody je njepředwidźomny, hdyž so matriks jako sortěrowana připowědźuje a we woprawdźitosći njeje.
Binarne pytanje so na sortěrowane matriksy nałožuje. Hewak so matriksy prosće wot horjeka dele skenuja a zapiski Empty a Null so ignoruja.
Metoda LBound (zapodawanska matriks) – 1, jeli pytanje njeje wuspěšne było.
svc.IndexOf(array_1d: any[0..*], tofind: any, casesensitive: bool = False, sortorder: str = ''): int
array_1d: Matriks, kotraž so ma skenować.
tofind: Ličba, datum abo znamješkowy rjećazk, kotrež so maja pytać.
casesensitive: Jenož za přirunanja znamješkowych rjećazkow (standard = false).
sortorder: Móže pak "ASC", "DESC" pak "" (njesortěrowany) być. Standardna hódnota je "".
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
Zasadźuje zapiski, kotrež su jako argumenty nalistowany, před datym indeksom zapidawanskeje matriksy.
Argumenty so slepje zasadźuja. Kóždy z nich móhł pak skalar někajkeho typa pak podmatriks być.
svc.Insert(array_1d: any[0..*], before: int, arg0: any, [arg1: any] ...): any[0..*]
array_1d: Hižo eksistowaca matriks, móže prózdna być.
before: Indeks, před kotrymž so ma zasadźić; dyrbi w interwalu [LBound, UBound + 1] być.
arg0, arg1, ...: Zapiski, kotrež so do array_1d zasadźuja.
Dim a As Variant
a = SF_Array.Insert(Array(1, 2, 3), 2, "a", "b")
' (1, 2, "a", "b", 3)
Zasadźuje nowy zapisk do sortěrowaneje matriksy na jeho městnje.
Matriks dyrbi so homogenje pjelnić, štož rěka, zo wšě zapiski dyrbja skalary samsneho typa być.
Zapiski Empty a Null su zakazane.
svc.InsertSorted(array_1d: any[0..*], item: any, sortorder: str = 'ASC', casesensitive: bool = False): any[0..*]
array_1d: Matriks, do kotrejež so hódnota zasadźi.
item: Skalarowa hódnota, kotraž so ma zasadźić, samsneho typa kaž eksistowace matriksowe zapiski.
sortorder: Móže pak "ASC" (standard) pak "DESC" być.
casesensitive: Jenož za přirunanja znamješkowych rjećazkow (standard = false).
Dim a As Variant
a = SF_Array.InsertSorted(Array("A", "C", "a", "b"), "B", CaseSensitive := True)
' ("A", "B", "C", "a", "b")
Wutworja sadźbu jako matriks na bazy nula přez to, zo so operator rězneho mnóstwa na dwě zapodawanskej matriksy nałožuje. Rezultowace zapiski su we woběmaj matriksomaj wobsahowanje.
Rezultowaca matriks so w postupowacym porjedźe sortěruje.
Wobě zapodawanskej matriksy dyrbitej so homogenje pjelnić, hinak prajene, wšě zapiski dyrbja skalary samsneho typa być. ZapiskiEmpty a Null su zakazane.
Tekstowe přirunanje móže na wulkopisanje dźiwać abo nic.
svc.Intersection(array1_1d: any[0..*], array2_1d: any[0..*], casesensitive: bool = False): any[0..*]
array1_1d: Prěnja zapodawanska matriks.
array2_1d: Druha zapodawanska matriks.
casesensitive: Nałožuje so na matriksy, kotrež su z tekstowymi zapiskami wupjelnjene (standard = false).
Dim a As Variant
a = SF_Array.Intersection(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("C", "b")
Zwjazuje dwudimensionalnu matriks z dwěmaj dźělatkomaj, jedne za špalty, jedne za linki.
svc.Join2D(array_2d: any [0..*, 0..*], [columndelimiter: str], [rowdelimiter: str], [quote: str]): str
array_2d: Kóždy zapisk dyrbi pak tekst, ličba, datum abo Boolowa hódnota być.
Datumy so do formata LLLL-MM-DD hh:mm:ss přetworjeja.
Njepłaćiwe zapiski so ze znamješkowym rjećazkom z dołhosć nul wuměnjeja.
columndelimeter: Wotmjezuje kóždu špaltu (standard = Tab/Chr(9)).
rowdelimiter: Wotmjezuje kóždu linku (standard = LineFeed/Chr(10))
quote: Jeli True, so znamješkowe rjećazki z dwójnymi pazorkami škitaja. Standard je false.
' arr = | 1, 2, "A", [2020-02-29], 51, 2, "A", [2020-02-29], 5 |
' | 6, 7, "this is a string", 9, 106, 7, "this is a string", 9, 10 |
Dim arr as Variant : arr = Array()
arr = SF_Array.AppendRow(arr, Array(1, 2, "A", [2020-02-29], 51, 2, "A", [2020-02-29], 5))
arr = SF_Array.AppendRow(arr, Array(6, 7, "this is a string", 9, 106, 7, "this is a string", 9, 10))
Dim arrText as String
arrText = SF_Array.Join2D(arr, ",", "/", False)
' 1,2,A,,51,2,A,,5/6,7,this is a string,9,106,7,this is a string,9,10
Započina zapodawansku matriks ze zapiskami, kotrež su jako argumenty nalistowane.
svc.Prepend(array_1d: any[0..*], arg0: any, [arg1: any] ...): any[0..*]
array_1d: Hižo eksistowaca matriks, móže prózdna być.
arg0, arg1, ...: Lisćina zapiskow, kotrež so maja před array_1d być.
Dim a As Variant
a = SF_Array.Prepend(Array(1, 2, 3), 4, 5)
' (4, 5, 1, 2, 3)
Započina lěwy bok dwudimensionalneje matriksy z nowej špaltu. Rezultowaca matriks ma samsne delnje mjezy kaž spočatna dwudimensionalna matriks.
svc.PrependColumn(array_2d: any[0..*, 0..*], column: any[0..*]): any[0..*, 0..*]
array_2d: Hižo eksistowaca matriks, móže prózdna być. Jeli tuta matriks ma jednu dimensiju, wobhladuje so jako poslednja špalta rezultowaceje dwudimensionalneje matriksy.
column: Jednodimensionalna matriks z telko zapiskami kaž su linki w array_2d.
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
Započina dwudimensionalnu matriks z nowej linku. Rezultowaca matriks ma samsne delnje mjez kaž spočatna dwudimensionalna matriks.
svc.PrependRow(array_2d: any[0..*, 0..*], row: any[0..*]): any[0..*, 0..*]
array_2d: Hižo eksistowaca matriks, móže prózdna być. Jeli tuta matriks ma jednu dimensiju, wobhladuje so jako prěnja linka rezultowaceje dwudimensionalneje matriksy.
row: Jednodimensionalna matriks, kotraž telko zapiski wobsahuje kaž su špalty w array_2d.
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
Inicializuje nowu matriks na bazy nule z numeriskimi hódnotami.
svc.RangeInit(from: num, upto: num, [bystep: num]): num[0..*]
from: Hódnota prěnjeho zapiska.
uptp: Posledni zapisk njeměł UpTo překročić.
bystep: Diferenca mjez dwěmaj na so sćěhowacymaj zapiskomaj (standard = 1).
Dim a As Variant
a = SF_Array.RangeInit(10, 1, -1)
' (10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
Wróći nawopačnu jednodimensionalnu zapodawansku matriks.
svc.Reverse(array_1d: any[0..*]): any[0..*]
array_1d: Matriks, kotraž so wobroćić.
Dim a As Variant
a = SF_Array.Reverse(Array("a", 2, 3, 4))
' (4, 3, 2, "a")
Wróći připadnu permutaciju jednodimensionalneje matriksy.
svc.Shuffle(array_1d: any[0..*]): any[0..*]
array_1d: Matriks, kotraž so ma přeměšeć.
Dim a As Variant
a = SF_Array.Shuffle(Array(1, 2, 3, 4))
' Matriks "a" je nětko w připadnym porjedźe, na př. (2. 3, 1, 4)
Wróći podsadźbu jednodimensionalneje matriksy.
svc.Slice(array_1d: any[0..*], from: int, [upto: int]): any[0..*]
array_1d: Matriks, kotraž so ma dźělić.
from: Delni indeks w array_1d podmatriksy, kontraž so ma ekstrahować (from zapřijaty)
upto: Horni indeks w array_1d podmatriksy, kotraž so ma ekstrahować (upto zapřijaty). Standardna hódnota je hornja mjeza array_1d. Jeli upto < from , je wróćena matriks prózdna.
Dim a As Variant
a = SF_Array.Slice(Array(1, 2, 3, 4, 5), 1, 3) ' (2, 3, 4)
Sortěruje jednodimensionalnu matriks w postupowacym abo spadowacym porjedźe. Tekstowe přirunanja móža na wulkopisanje dźiwać abo nic.
Matriks dyrbi homogenje wupjelnjena być, to rěka, zo zapiski dyrbja skalary samsneho typa być.
Zapiski Empty a Null su dowolene. Po zwučenym wašnju je Empty < Null < někajka druha skalarowa hódnota.
svc.Sort(array_1d: any[0..*], sortorder: str, casesensitive: bool = False): any[0..*]
array_1d: Matriks, kotraž so ma sortěrować.
sortorder: Móže pak "ASC" (standard) pak "DESC" być.
casesensitive: Jenož za přirunanja znamješkowych rjećazkow (standard = false).
Dim a As Variant
a = SF_Array.Sort(Array("a", "A", "b", "B", "C"), CaseSensitive := True)
' ("A", "B", "C", "a", "b")
Wróći permutaciju špaltow dwudimensionalneje matriksy, sortěrowane po hódnotami dateje linki.
Linka dyrbi homogenje wupjelnjena być, to rěka, zo wšě zapiski dyrbja skalary samsneho typa być.
Zapiski Empty a Null su dowolene. Po zwučenym wašnju je Empty < Null < někajka druha skalarowa hódnota.
svc.SortColumns(array_2d: any[0..*, 0..*], rowindex: int, sortorder: str, casesensitive: bool = False): any[0..*, 0..*]
array_2d: Dwudimensionalna matriks, kotraž so ma sortěrować.
rowindex: Indeks linki, kotraž budźe so jako referenca za sortěrowanje špaltow wužiwać.
sortorder: Móže pak "ASC" (standard) pak "DESC" być.
casesensitive: Jenož za přirunanja znamješkowych rjećazkow (standard = false).
' arr = | 5, 7, 3 |
' | 1, 9, 5 |
' | 6, 1, 8 |
Dim arr as Variant : arr = Array(5, 7, 3)
arr = SF_Array.AppendRow(arr, Array(1, 9, 5))
arr = SF_Array.AppendRow(arr, Array(6, 1, 8))
arr = SF_Array.SortColumns(arr, 2, "ASC")
' arr = | 7, 5, 3 |
' | 9, 1, 5 |
' | 1, 6, 8 |
Wróći permutaciju linkow dwudimensionalneje matriksy, sortěrowane po hódnotami dateje špalty.
Špalta dyrbi homogenje wupjelnjena być, to rěka, zo wšě zapiski dyrbja skalary samsneho typa być.
Zapiski Empty a Null su dowolene. Po zwučenym wašnju je Empty < Null < někajka druha skalarowa hódnota.
svc.SortRows(array_2d: any[0..*, 0..*], columnindex: int, sortorder: str, casesensitive: bool = False): any[0..*, 0..*]
array_2d: Matriks, kotraž so ma sortěrować.
columnindex: Indeks špalty, kotraž budźe so jako referenca za sortěrowanje linkow wužiwać.
sortorder: Móže pak "ASC" (standard) pak "DESC" być.
casesensitive: Jenož za přirunanja znamješkowych rjećazkow (standard = false).
' arr = | 5, 7, 3 |
' | 1, 9, 5 |
' | 6, 1, 8 |
Dim arr as Variant : arr = Array(5, 7, 3)
arr = SF_Array.AppendRow(arr, Array(1, 9, 5))
arr = SF_Array.AppendRow(arr, Array(6, 1, 8))
arr = SF_Array.SortRows(arr, 0, "ASC")
' arr = | 1, 9, 5 |
' | 5, 7, 3 |
' | 6, 1, 8 |
Wuměnja linki a špalty w dwudimensionalnej matriksy.
svc.Transpose(array_2d: any[0..*, 0..*]): any[0..*, 0..*]
array_2d: Dwudimensionalna matriks, kotraž so ma transponować.
' arr1 = | 1, 2 |
' | 3, 4 |
' | 5, 6 |
arr1 = Array(1, 2)
arr1 = SF_Array.AppendRow(arr1, Array(3, 4))
arr1 = SF_Array.AppendRow(arr1, Array(5, 6))
arr2 = SF_Array.Transpose(arr1)
' arr2 = | 1, 3, 5 |
' | 2, 4, 6 |
MsgBox arr2(0, 2) ' 5
Wotstronja wšě zapiski Null, Empty a zapiski z dołhosću nul z jednodimensionalneje matriksy.
Zapiski znamješkowych rjećazkow so z funkciju LibreOffice Basic Trim() přirězuja.
svc.TrimArray(array_1d: any[0..*]): any[0..*]
array_1d: Matriks, kotraž so ma přirězać.
Dim a As Variant
a = SF_Array.TrimArray(Array("A", "B", Null, " D "))
' ("A", "B", "D")
Wutworja sadźbu jako matriks na bazy nula přez to, zo zjednoćenski operator na dwě zapodawanskej matriksy nałožuje. Rezultowace zapiski z wobeju matriksow pochadźeja.
Rezultowaca matriks so w postupowacym porjedźe sortěruje.
Wobě zapodawanskej matriksy dyrbitej homogenje wupjelnenej być, jeju zapiski dyrbja skalary samsneho typa być. ZapiskiEmpty a Null su zakazane.
Tekstowe přirunanje móže na wulkopisanje dźiwać abo nic.
svc.Union(array1_1d: any[0..*], array2_1d: any[0..*], casesensitive: bool = False): any[0..*]
array1_1d: Prěnja zapodawanska matriks.
array2_1d: Druha zapodawanska matriks.
casesensitive: Jenož nałožujomny, jeli matriksy su ze znamješkowymi rjećazkami wupjelnjene (standard = false).
Dim a As Variant
a = SF_Array.Union(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("A", "B", "C", "Z", "b")
Wutworja sadźbu jónkróćnych hódnotow, kotrež su wot zapodawanskeje matriksy wotwodźene.
Zapodawanska matriks dyrbi homogenje wupjelnjene być, jeje zapiski dyrbja skalary samsneho typa być. Zapiski Empty a Null su zakazane.
Tekstowe přirunanja móža na wulkopisanje dźiwać abo nic.
svc.Unique(array_1d: any[0..*], casesensitive: bool = False): any[0..*]
array_1d: Zapodawanska matriks.
casesensitive: Jenož nałožujomny, jeli matriks je ze znamješkowymi rjećazkami wupjelnjena (standard = false).
Dim a As Variant
a = SF_Array.Unique(Array("A", "C", "A", "b", "B"), CaseSensitive := True)
' ("A", "B", "C", "b")