LibreOffice 7.5 Hjelp
Gir en samling metoder for Ä manipulere og transformere matriser med én dimensjon (vektorer) og matriser med to dimensjoner (matriser). Dette inkluderer settoperasjoner, sortering, import fra og eksport til 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.
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):
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)
Fordi Python har innebygd liste- og tuppelstÞtte, er de fleste metodene i Matrise-tjenesten kun tilgjengelig for grunnleggende skript. Det eneste unntaket er ImportFromCSVFile som stÞttes i bÄde Basic og Python.
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.
Legger til elementene som er oppfÞrt som argumenter pÄ slutten av inndatamatrisen.
svc.Append(array_1d: any[0..*], arg0: any, [arg1: any] ...): any[0..*]
array_1d: Den eksisterende matrisen kan vĂŠre tom.
arg0, arg1, ...: Elementer som vil bli lagt til array_1d.
Dim a As Variant
a = SF_Array.Append(Array(1, 2, 3), 4, 5)
' (1, 2, 3, 4, 5)
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.
svc.AppendColumn(array_2d: any[0..*, 0..*], column: any[0..*]): any[0..*, 0..*]
array_2d: Den eksisterende matrisen kan vÊre tom. Hvis den matrisen bare har én dimensjon, anses den som den fÞrste kolonnen i den resulterende todimensjonale matrisen.
kolonne: En 1-dimensjonal matrise med like mange elementer som det er rader i array_2d.
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
Legg til en ny rad nederst i en todimensjonal matrise. Den resulterende matrisen har de samme nedre grensene som den fĂžrste todimensjonale matrisen.
svc.AppendRow(array_2d: any[0..*, 0..*], row: any[0..*]): any[0..*, 0..*])
array_2d: Den eksisterende matrisen kan vĂŠre tom. Hvis den matrisen har 1 dimensjon, anses den som den fĂžrste raden i den resulterende 2-dimensjonale matrisen.
rad: En 1-dimensjonal matrise med like mange elementer som det er kolonner i 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
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.
svc.Contains(array_1d: any[0..*], tofind: any, casesensitive: bool = False, sortorder: str = ""): bool
array_1d: Matrisen som skal skannes.
tofind: Et tall, en dato eller en streng som skal finnes.
skiller mellom store og smÄ bokstaver: Bare for strengsammenligninger (Standard = Usann).
sortorder: Det kan enten vĂŠre "ASC", "DESC" eller "" (ikke sortert). Standardverdien er "".
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
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.
svc.ConvertToDictionary(array_2d: any[0..*, 0..1]): obj
array_2d: Data som skal konverteres til et ScriptForge.Dictionary-objekt.
Den fÞrste kolonnen mÄ utelukkende inneholde strenger med lengde stÞrre enn null, i hvilken som helst rekkefÞlge. Disse verdiene vil bli brukt som etiketter i ordboken.
Den andre kolonnen inneholder dataene som vil knyttes til den tilsvarende etiketten i ordboken.
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
Oppretter en kopi av en 1D- eller 2D-matrise.
svc.Copy(array_nd: any[0..*]): any[0..*]
svc.Copy(array_nd: any[0..*, 0..*]): any[0..*, 0..*]
array_nd: 1D- eller 2D-matrisen som skal kopieres.
En enkel tilordning av et Matrise-objekt vil kopiere referansen i stedet for Ă„ lage en kopi av objektets innhold. Se eksempelet nedenfor:
Dim a as Variant, b as Variant
a = Array(1, 2, 3)
' Oppgaven nedenfor er laget ved referanse
b = a
' Derfor vil endring av verdier i "b" ogsÄ endre "a"
b(0) = 10
MsgBox a(0) ' 10
Ved Ä bruke Kopier-metoden lages en kopi av hele Matrise-objektet. I eksemplet nedenfor er a og b forskjellige objekter, og endring av verdier i b vil ikke pÄvirke verdiene i a .
Dim a as Variant, b as Variant
a = Array(1, 2, 3)
' Oppretter en kopi av "a" ved Ă„ bruke "Kopier"-metoden
b = SF_Array.Copy(a)
b(0) = 10
MsgBox a(0) ' 1
Tell antall dimensjoner til en matrise. Resultatet kan vĂŠre stĂžrre enn to.
Hvis argumentet ikke er en matrise, returnerer -1
Hvis matrisen ikke er initialisert, returnerer 0.
svc.CountDims(array_nd: any): int
array_nd: Matrisen som skal undersĂžkes.
Dim a(1 To 10, -3 To 12, 5)
MsgBox SF_Array.CountDims(a) ' 3
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.
svc.Difference(array1_1d: any[0..*], array2_1d: any[0..*], casesensitive: bool = False): any[0..*]
array1_1d: En 1-dimensjonal referansematrise, hvis elementer undersĂžkes for fjerning.
array2_1d: En 1-dimensjonal matrise, hvis elementer trekkes fra den fĂžrste inngangsmatrisen.
skiller mellom store og smÄ bokstaver: Dette argumentet er bare aktuelt hvis matrisene er fylt med strenger (Standard = Usann).
Dim a As Variant
a = SF_Array.Difference(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("A", "B")
Skriv alle elementer i matrisen sekvensielt til en tekstfil. Hvis filen allerede eksisterer, vil den bli overskrevet uten forvarsel.
svc.ExportToTextFile(array_1d: any[0..*], filename: str, [encoding: str]): bool
array_1d: Matrisen som skal eksporteres. Den mÄ bare inneholde strenger.
filnavn: Navnet pÄ tekstfilen som dataene skal skrives til. Navnet mÄ uttrykkes i henhold til den gjeldende FilNavgivings-egenskapen til SF_FileSystem-tjenesten.
koding: Tegnsettet som skal brukes. Bruk ett av navnene som er oppfĂžrt i IANA-tegnsett. Merk at LibreOffice kanskje ikke implementerer alle eksisterende tegnsett (standard er "UTF-8").
SF_Array.ExportToTextFile(Array("A","B","C","D"), "C:\Temp\A short file.txt")
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.
svc.ExtractColumn(array_2d: any[0..*, 0..*], columnindex: int): any[0..*, 0..*]
array_2d: Matrisen det skal trekkes ut fra.
columnindex: Kolonnenummeret som skal trekkes ut - mÄ vÊre i intervallet [LBound, UBound].
'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)
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.
svc.ExtractRow(array_2d: any[0..*, 0..*], rowindex: int): any[0..*, 0..*]
array_2d: Matrisen det skal trekkes ut fra.
rowindex: Radnummeret som skal trekkes ut - mÄ vÊre i intervallet [LBound, UBound].
'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)
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.
svc.Flatten(array_1d: any[0..*]): any[0..*]
array_1d: Den eksisterende matrisen kan vĂŠre tom.
Dim a As Variant
a = SF_Array.Flatten(Array(Array(1, 2, 3), 4, 5))
' (1, 2, 3, 4, 5)
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.
Neste er et eksempel pÄ hvordan metodene Flate og Legg til kan kombineres for Ä sette sammen tre matriser.
'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)
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.
svc.ImportFromCSVFile(filename: str, delimiter: str = ',', dateformat: str = ''): any[0..*]
filnavn: Navnet pÄ tekstfilen som inneholder dataene. Navnet mÄ uttrykkes i henhold til den gjeldende FileName-egenskapen til SF_FileSystem-tjenesten.
skilletegn: Et enkelt tegn, vanligvis et komma, et semikolon eller et TAB-tegn (Standard = ",").
datoformat: En spesiell mekanisme hÄndterer datoer nÄr datoformat er enten "à à à à -MM-DD", "DD-MM-à à à à " eller "MM-DD-à à à à ". Bindestreken (-) kan erstattes av en prikk (.), en skrÄstrek (/) eller et mellomrom. Andre datoformater vil bli ignorert. Datoer som skrives til en tom streng "" anses som normal tekst.
Tenk pÄ CSV-filen "myFile.csv" med fÞlgende innhold:
Navn,FĂždselsdato,Adresse,By
Anna,2002/03/31,"Rue de l'église, 21",Toulouse
Fred,1998/05/04,"Rue Albert Einstein, 113A",Carcassonne
Eksemplene nedenfor i Basic og Python leser innholdet i CSV-filen inn i et Matrise-objekt.
Dim arr As Variant
arr = SF_Array.ImportFromCSVFile("C:\Temp\myFile.csv", DateFormat := "Ă
Ă
Ă
Ă
/MM/DD")
MsgBox arr(0, 3) ' By
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\myFile.csv", datoformat = "Ă
Ă
Ă
Ă
/MM/DD")
bas.MsgBox(arr[0][3]) # By
bas.MsgBox(arr[1][2]) # Rue de l'église, 21
bas.MsgBox(arr[1][3]) # Toulouse
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.
svc.IndexOf(array_1d: any[0..*], tofind: any, casesensitive: bool = False, sortorder: str = ''): int
array_1d: Matrisen som skal skannes.
Ă„ finne: Et tall, en dato eller en streng .
skiller mellom store og smÄ bokstaver: Bare for strengsammenligninger (Standard = Usann).
sortorder: Det kan enten vĂŠre "ASC", "DESC" eller "" (ikke sortert). Standardverdien er "".
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
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.
svc.Insert(array_1d: any[0..*], before: int, arg0: any, [arg1: any] ...): any[0..*]
array_1d: Den eksisterende matrisen kan vĂŠre tom.
fÞr: Indeksen fÞr, som skal settes inn; mÄ vÊre i intervallet [LBound, UBound + 1].
arg0, arg1, ...: Elementer som vil bli satt inn i array_1d.
Dim a As Variant
a = SF_Array.Insert(Array(1, 2, 3), 2, "a", "b")
' (1, 2, "a", "b", 3)
Setter inn et nytt element pÄ sin plass i en sortert matrise.
Matrisen mÄ fylles homogent, noe som betyr at alle elementer mÄ vÊre skalarer av samme type.
Tomme og Null elementer er forbudt.
svc.InsertSorted(array_1d: any[0..*], item: any, sortorder: str = 'ASC', casesensitive: bool = False): any[0..*]
array_1d: Matrisen som verdien skal settes inn i.
item: Den skalĂŠre verdien som skal settes inn, av samme type som de eksisterende matriseelementene.
sorteringsrekkefĂžlge: Det kan enten vĂŠre "ASC" (standard) eller "DESC".
skille mellom store og smÄ bokstaver: Bare for strengsammenligninger (Standard = Usann).
Dim a As Variant
a = SF_Array.InsertSorted(Array("A", "C", "a", "b"), "B", CaseSensitive := True)
' ("A", "B", "C", "a", "b")
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.
svc.Intersection(array1_1d: any[0..*], array2_1d: any[0..*], casesensitive: bool = False): any[0..*]
array1_1d: Den fĂžrste inndatamatrisen.
array2_1d: Den andre inndatamatrisen.
skiller mellom store og smÄ bokstaver: Gjelder for matriser fylt med tekstelementer (Standard = Usann).
Dim a As Variant
a = SF_Array.Intersection(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("C", "b")
SlÄ sammen en todimensjonal matrise med to skilletegn, én for kolonnene, én for radene.
svc.Join2D(array_2d: any [0..*, 0..*], [columndelimiter: str], [rowdelimiter: str], [quote: str]): str
array_2d: Hvert element mÄ vÊre enten tekst, et tall, en dato eller en boolsk.
Datoer transformeres til formatet Ă
Ă
Ă
Ă
-MM-DD tt:mm:ss.
Ugyldige elementer erstattes av en streng med null lengde.
kolonneavgrensning: Avgrenser hver kolonne (standard = Tab/Chr(9)).
radavgrenser: Avgrenser hver rad (standard = LineFeed/Chr(10))
kvote: Hvis Sann, beskytt strenger med doble anfĂžrselstegn. Standard er Usann.
' 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
Sett foran pÄ begynnelsen av inndatamatrisen elementene som er oppfÞrt som argumenter.
svc.Prepend(array_1d: any[0..*], arg0: any, [arg1: any] ...): any[0..*]
array_1d: Den eksisterende matrisen kan vĂŠre tom.
arg0, arg1, ...: En liste over elementer som skal legges til foran array_1d.
Dim a As Variant
a = SF_Array.Prepend(Array(1, 2, 3), 4, 5)
' (4, 5, 1, 2, 3)
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.
svc.PrependColumn(array_2d: any[0..*, 0..*], column: any[0..*]): any[0..*, 0..*]
array_2d: Den eksisterende matrisen kan vĂŠre tom. Hvis den matrisen har 1 dimensjon, anses den som den siste kolonnen i den resulterende 2-dimensjonale matrisen.
kolonne: En 1-dimensjonal matrise med like mange elementer som det er rader i 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
Legg til en ny rad i begynnelsen av en 2-dimensjonal matrise. Den resulterende matrisen har de samme nedre grensene som den fĂžrste 2-dimensjonale matrisen.
svc.PrependRow(array_2d: any[0..*, 0..*], row: any[0..*]): any[0..*, 0..*]
array_2d: Den eksisterende matrisen kan vĂŠre tom. Hvis den matrisen har 1 dimensjon, anses den som den siste raden i den resulterende 2-dimensjonale matrisen.
rad: En 1-dimensjonal matrise som inneholder like mange elementer som det er kolonner i 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
Initialiser en ny nullbasert matrise med numeriske verdier.
svc.RangeInit(from: num, upto: num, [bystep: num]): num[0..*]
fra: Verdien av det fĂžrste elementet.
opptil: Det siste elementet skal ikke overstige opptil.
bystep: Forskjellen mellom to pÄfÞlgende elementer (standard = 1).
Dim a As Variant
a = SF_Array.RangeInit(10, 1, -1)
' (10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
Returner den omvendte éndimensjonale inndatamatrisen.
svc.Reverse(array_1d: any[0..*]): any[0..*]
array_1d: Matrisen som skal reverseres.
Dim a As Variant
a = SF_Array.Reverse(Array("a", 2, 3, 4))
' (4, 3, 2, "a")
Returnerer en tilfeldig permutasjon av en endimensjonal matrise.
svc.Shuffle(array_1d: any[0..*]): any[0..*]
array_1d: Matrisen som skal blandes.
Dim a As Variant
a = SF_Array.Shuffle(Array(1, 2, 3, 4))
' Array "a" er nÄ i tilfeldig rekkefÞlge, f.i. (2, 3, 1, 4)
Returnerer et delsett av en endimensjonal matrise.
svc.Slice(array_1d: any[0..*], from: int, [upto: int]): any[0..*]
array_1d: Matrisen som skal deles.
fra: Den nedre indeksen i array_1d av undergruppen som skal trekkes ut (fra inkludert)
opptil: Den Þvre indeksen i array_1d av undergruppen som skal trekkes ut (opptil inkludert). Standardverdien er den Þvre grensen til array_1d. Hvis opptil < fra sÄ er den returnerte matrisen tom.
Dim a As Variant
a = SF_Array.Slice(Array(1, 2, 3, 4, 5), 1, 3) ' (2, 3, 4)
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.
svc.Sort(array_1d: any[0..*], sortorder: str, casesensitive: bool = False): any[0..*]
array_1d: Matrisen som skal sorteres.
sorteringsrekkefĂžlge: Det kan enten vĂŠre "ASC" (standard) eller "DESC".
skiller mellom store og smÄ bokstaver: Bare for strengsammenligninger (Standard = Usann).
Dim a As Variant
a = SF_Array.Sort(Array("a", "A", "b", "B", "C"), CaseSensitive := True)
' ("A", "B", "C", "a", "b")
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.
svc.SortColumns(array_2d: any[0..*, 0..*], rowindex: int, sortorder: str, casesensitive: bool = False): any[0..*, 0..*]
array_2d: Den 2-dimensjonale matrisen som skal sorteres.
rowindex: Indeksen til raden som skal brukes som referanse for Ă„ sortere kolonnene.
sorteringsrekkefĂžlge: Det kan enten vĂŠre "ASC" (standard) eller "DESC".
skiller mellom store og smÄ bokstaver: Bare for strengsammenligninger (Standard = Usann).
' 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 |
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.
svc.SortRows(array_2d: any[0..*, 0..*], columnindex: int, sortorder: str, casesensitive: bool = False): any[0..*, 0..*]
array_2d: Matrisen som skal sorteres.
columnindex: Indeksen til kolonnen som skal brukes som referanse for Ă„ sortere radene.
sorteringsrekkefĂžlge: Det kan enten vĂŠre "ASC" (standard) eller "DESC".
skiller mellom store og smÄ bokstaver: Bare for strengsammenligninger (Standard = Usann).
' 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 |
Bytter rader og kolonner i en todimensjonal matrise.
svc.Transpose(array_2d: any[0..*, 0..*]): any[0..*, 0..*]
array_2d: Den 2-dimensjonale matrisen som skal transponeres.
' 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
Fjern alle Null, Tomme og null-lengde oppfÞringer fra en éndimensjons matrise.
Strengelementer trimmes med LibreOffice Basic Trim()-funksjonen.
svc.TrimArray(array_1d: any[0..*]): any[0..*]
array_1d: Matrisen som skal trimmes.
Dim a As Variant
a = SF_Array.TrimArray(Array("A", "B", Null, " D "))
' ("A", "B", "D")
Bygger et sett, som en nullbasert matrise, ved Ä bruke unionsoperatoren pÄ de to inngangsmatrisene. Resulterende elementer kommer fra en av begge matrisene.
Den resulterende matrisen er sortert i stigende rekkefĂžlge.
Begge innputt-matrisene 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.
svc.Union(array1_1d: any[0..*], array2_1d: any[0..*], casesensitive: bool = False): any[0..*]
array1_1d: Den fĂžrste inndatamatrisen.
array2_1d Den andre inndatamatrisen.
skiller mellom store og smÄ bokstaver: Gjelder bare hvis matrisene er fylt med strenger (Standard = Usann).
Dim a As Variant
a = SF_Array.Union(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("A", "B", "C", "Z", "b")
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.
svc.Unique(array_1d: any[0..*], casesensitive: bool = False): any[0..*]
array_1d: Inndatamatrisen.
skiller mellom store og smÄ bokstaver: Gjelder bare hvis matrisen er fylt med strenger (Standard = Usann).
Dim a As Variant
a = SF_Array.Unique(Array("A", "C", "A", "b", "B"), CaseSensitive := True)
' ("A", "B", "C", "b")