ການຊ່ວຍເຫຼືອ LibreOffice 26.2
ສະໜອງຊຸດວິທີການສຳລັບການຈັດການ ແລະ ປ່ຽນແປງອາເຣແບບໜຶ່ງມິຕິ (ເວັກເຕີ) ແລະ ອາເຣແບບສອງມິຕິ (ມາຕຣິກ). ເຊິ່ງລວມເຖິງການດຳເນີນການແບບເຊັດ (Set), ການຈັດລຽງ, ການນຳເຂົ້າຈາກ ແລະ ການສົ່ງອອກໄປຍັງໄຟລ໌ຂໍ້ຄວາມ.
ອາເຣທີ່ມີຫຼາຍກວ່າສອງມິຕິບໍ່ສາມາດໃຊ້ກັບວິທີການໃນການບໍລິການນີ້ໄດ້, ຍົກເວັ້ນພຽງແຕ່ວິທີການ CountDims ທີ່ຮອງຮັບອາເຣທີ່ມີຈຳນວນມິຕິເທົ່າໃດກໍໄດ້.
ລາຍການໃນອາເຣອາດຈະປະກອບມີຄ່າປະເພດໃດກໍໄດ້, ລວມທັງອາເຣຍ່ອຍ.
ກ່ອນທີ່ຈະໃຊ້ການບໍລິການ Array, ຕ້ອງໂຫຼດຄັງສຳນວນ ScriptForge ໂດຍໃຊ້:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
ການໂຫຼດຄັງສຳນວນຈະສ້າງວັດຖຸ SF_Array ທີ່ສາມາດໃຊ້ເພື່ອເອີ້ນວິທີການຕ່າງໆໃນການບໍລິການ Array.
ຂໍ້ຄວາມລະຫັດຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນວິທີຕ່າງໆໃນການເອີ້ນວິທີການໃນການບໍລິການ Array (ໂດຍໃຊ້ວິທີການ Append ເປັນຕົວຢ່າງ):
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)
ເນື່ອງຈາກ Python ມີການຮອງຮັບ list ແລະ tuple ໃນຕົວ, ວິທີການສ່ວນໃຫຍ່ໃນການບໍລິການ Array ຈຶ່ງມີໃຫ້ໃຊ້ສຳລັບສະຄຣິບ Basic ເທົ່ານັ້ນ. ຂໍ້ຍົກເວັ້ນດຽວແມ່ນ ImportFromCSVFile ເຊິ່ງຮອງຮັບທັງໃນ Basic ແລະ Python.
ອາຄິວເມັ້ນທຳອິດຂອງວິທີການສ່ວນໃຫຍ່ແມ່ນວັດຖຸອາເຣທີ່ຈະນຳມາພິຈາລະນາ. ມັນຈະຖືກສົ່ງຜ່ານແບບການອ້າງອີງ (by reference) ແລະ ຄ່າເດີມຈະບໍ່ປ່ຽນແປງ. ວິທີການຕ່າງໆເຊັ່ນ Append, Prepend, ແລະອື່ນໆ ຈະສົ່ງຄືນວັດຖຸອາເຣໃໝ່ຫຼັງຈາກປະຕິບັດການແລ້ວ.
ເພີ່ມລາຍການທີ່ລະບຸໃນອາຄິວເມັ້ນເຂົ້າໄປທີ່ສ່ວນທ້າຍຂອງອາເຣ.
svc.Append(array_1d: any[0..*], arg0: any, [arg1: any] ...): any[0..*]
array_1d: ອາເຣທີ່ມີຢູ່ແລ້ວ, ອາດຈະເປັນອາເຣວ່າງກໍໄດ້.
arg0, arg1, ...: ລາຍການທີ່ຈະຖືກເພີ່ມເຂົ້າໃນ array_1d.
Dim a As Variant
a = SF_Array.Append(Array(1, 2, 3), 4, 5)
' (1, 2, 3, 4, 5)
ເພີ່ມຄໍລຳໃໝ່ເຂົ້າທາງດ້ານຂວາຂອງອາເຣສອງມິຕິ. ອາເຣທີ່ໄດ້ຈະມີຂອບເຂດເລີ່ມຕົ້ນຄືກັນກັບອາເຣສອງມິຕິເດີມ.
svc.AppendColumn(array_2d: any[0..*, 0..*], column: any[0..*]): any[0..*, 0..*]
array_2d: ອາເຣທີ່ມີຢູ່ແລ້ວ, ອາດຈະເປັນອາເຣວ່າງກໍໄດ້. ຖ້າອາເຣນັ້ນມີພຽງມິຕິດຽວ, ມັນຈະຖືກຖືວ່າເປັນຄໍລຳທຳອິດຂອງອາເຣສອງມິຕິທີ່ໄດ້.
column: ອາເຣໜຶ່ງມິຕິທີ່ມີຈຳນວນລາຍການເທົ່າກັບຈຳນວນແຖວໃນ 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
ເພີ່ມແຖວໃໝ່ເຂົ້າທີ່ສ່ວນລຸ່ມຂອງອາເຣສອງມິຕິ. ອາເຣທີ່ໄດ້ຈະມີຂອບເຂດເລີ່ມຕົ້ນຄືກັນກັບອາເຣສອງມິຕິເດີມ.
svc.AppendRow(array_2d: any[0..*, 0..*], row: any[0..*]): any[0..*, 0..*])
array_2d: ອາເຣທີ່ມີຢູ່ແລ້ວ, ອາດຈະເປັນອາເຣວ່າງກໍໄດ້. ຖ້າອາເຣນັ້ນມີ 1 ມິຕິ, ມັນຈະຖືກຖືວ່າເປັນແຖວທຳອິດຂອງອາເຣ 2 ມິຕິທີ່ໄດ້.
row: ອາເຣໜຶ່ງມິຕິທີ່ມີຈຳນວນລາຍການເທົ່າກັບຈຳນວນຄໍລຳໃນ 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
ກວດສອບວ່າອາເຣໜຶ່ງມິຕິປະກອບມີຕົວເລກ, ຂໍ້ຄວາມ ຫຼື ວັນທີທີ່ແນ່ນອນຫຼືບໍ່. ການປຽບທຽບຂໍ້ຄວາມສາມາດກຳນົດໃຫ້ກວດສອບຕົວພິມໃຫຍ່-ນ້ອຍໄດ້.
ອາເຣທີ່ຈັດລຽງແລ້ວຕ້ອງມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ, ໝາຍຄວາມວ່າທຸກລາຍການຕ້ອງເປັນສະກາລາປະເພດດຽວກັນ (ຫ້າມມີລາຍການ Empty ແລະ Null).
ຜົນໄດ້ຮັບຂອງວິທີການນີ້ອາດຈະຜິດພາດໄດ້ ຖ້າລະບຸວ່າອາເຣຈັດລຽງແລ້ວ ແຕ່ຄວາມຈິງແລ້ວບໍ່ໄດ້ຈັດລຽງ.
ຈະໃຊ້ການຄົ້ນຫາແບບໄບນາຣີ (Binary search) ເມື່ອອາເຣຖືກຈັດລຽງ, ຖ້າບໍ່ດັ່ງນັ້ນ ຈະເປັນການກວດສອບແຕ່ເທິງລົງລຸ່ມ ແລະ ຈະຂ້າມລາຍການ Empty ກັບ Null ໄປ.
svc.Contains(array_1d: any[0..*], tofind: any, casesensitive: bool = False, sortorder: str = ""): bool
array_1d: ອາເຣທີ່ຈະກວດສອບ.
tofind: ຕົວເລກ, ວັນທີ ຫຼື ຂໍ້ຄວາມທີ່ຈະຄົ້ນຫາ.
casesensitive: ໃຊ້ສຳລັບການປຽບທຽບຂໍ້ຄວາມເທົ່ານັ້ນ (ຄ່າເລີ່ມຕົ້ນ = False).
sortorder: ສາມາດເປັນ "ASC", "DESC" ຫຼື "" (ບໍ່ໄດ້ຈັດລຽງ). ຄ່າເລີ່ມຕົ້ນແມ່ນ "".
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
ເກັບເນື້ອໃນຂອງອາເຣທີ່ມີ 2 ຄໍລຳເຂົ້າໃນວັດຖຸ ScriptForge.Dictionary.
ຄີ (Key) ຈະຖືກດຶງມາຈາກຄໍລຳທຳອິດ, ແລະ ລາຍການ (Item) ຈາກຄໍລຳທີສອງ.
svc.ConvertToDictionary(array_2d: any[0..*, 0..1]): obj
array_2d: ຂໍ້ມູນທີ່ຈະແປງເປັນວັດຖຸ ScriptForge.Dictionary.
ຄໍລຳທຳອິດຕ້ອງປະກອບມີແຕ່ຂໍ້ຄວາມທີ່ມີຄວາມຍາວຫຼາຍກວ່າສູນເທົ່ານັ້ນ, ໂດຍຈະລຽງລຳດັບແນວໃດກໍໄດ້. ຄ່າເຫຼົ່ານີ້ຈະຖືກໃຊ້ເປັນປ້າຍຊື່ (Labels) ໃນດິກຊັນນາຣີ.
ຄໍລຳທີສອງປະກອບມີຂໍ້ມູນທີ່ຈະຖືກເຊື່ອມໂຍງກັບປ້າຍຊື່ທີ່ກົງກັນໃນດິກຊັນນາຣີ.
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
ສ້າງສຳເນົາຂອງອາເຣ 1D ຫຼື 2D.
svc.Copy(array_nd: any[0..*]): any[0..*]
svc.Copy(array_nd: any[0..*, 0..*]): any[0..*, 0..*]
array_nd: ອາເຣ 1D ຫຼື 2D ທີ່ຈະເຮັດສຳເນົາ.
ການກຳນົດຄ່າແບບທຳມະດາຂອງວັດຖຸ Array ຈະເປັນການສຳເນົາການອ້າງອີງຂອງມັນ ແທນທີ່ຈະເປັນການສ້າງສຳເນົາເນື້ອໃນຂອງວັດຖຸ. ເບິ່ງຕົວຢ່າງລຸ່ມນີ້:
Dim a as Variant, b as Variant
a = Array(1, 2, 3)
' ການກຳນົດຄ່າລຸ່ມນີ້ແມ່ນເຮັດໂດຍການອ້າງອີງ
b = a
' ດັ່ງນັ້ນການປ່ຽນແປງຄ່າໃນ "b" ຈະປ່ຽນຄ່າໃນ "a" ນຳ
b(0) = 10
MsgBox a(0) ' 10
ໂດຍການໃຊ້ວິທີການ Copy, ຈະເປັນການສ້າງສຳເນົາຂອງວັດຖຸ Array ທັງໝົດ. ໃນຕົວຢ່າງລຸ່ມນີ້, a ແລະ b ແມ່ນວັດຖຸຄົນລະອັນກັນ ແລະ ການປ່ຽນແປງຄ່າໃນ b ຈະບໍ່ມີຜົນຕໍ່ຄ່າໃນ a.
Dim a as Variant, b as Variant
a = Array(1, 2, 3)
' ສ້າງສຳເນົາຂອງ "a" ໂດຍໃຊ້ວິທີການ "Copy"
b = SF_Array.Copy(a)
b(0) = 10
MsgBox a(0) ' 1
ນັບຈຳນວນມິຕິຂອງອາເຣ. ຜົນໄດ້ຮັບອາດຈະຫຼາຍກວ່າສອງ.
ຖ້າອາຄິວເມັ້ນບໍ່ແມ່ນອາເຣ, ຈະສົ່ງຄືນ -1
ຖ້າອາເຣຍັງບໍ່ໄດ້ຖືກກຳນົດຄ່າເລີ່ມຕົ້ນ, ຈະສົ່ງຄືນ 0.
svc.CountDims(array_nd: any): int
array_nd: ອາເຣທີ່ຈະກວດສອບ.
Dim a(1 To 10, -3 To 12, 5)
MsgBox SF_Array.CountDims(a) ' 3
ສ້າງເຊັດໃນຮູບແບບອາເຣທີ່ເລີ່ມຈາກສູນ ໂດຍໃຊ້ຕົວດຳເນີນການຜົນຕ່າງ (difference) ກັບອາເຣນຳເຂົ້າສອງອັນ. ລາຍການຜົນໄດ້ຮັບຈະມາຈາກອາເຣທຳອິດ ແລະ ບໍ່ມີຢູ່ໃນອາເຣທີສອງ.
ອາເຣທີ່ໄດ້ຈະຖືກຈັດລຽງຕາມລຳດັບຈາກນ້ອຍໄປຫາຫຼາຍ.
ທັງສອງອາເຣນຳເຂົ້າມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ, ລາຍການຂອງພວກມັນຕ້ອງເປັນສະກາລາປະເພດດຽວກັນ. ຫ້າມມີລາຍການ Empty ແລະ Null.
ການປຽບທຽບຂໍ້ຄວາມສາມາດກຳນົດໃຫ້ກວດສອບຕົວພິມໃຫຍ່-ນ້ອຍໄດ້.
svc.Difference(array1_1d: any[0..*], array2_1d: any[0..*], casesensitive: bool = False): any[0..*]
array1_1d: ອາເຣອ້າງອີງ 1 ມິຕິ, ເຊິ່ງລາຍການຂອງມັນຈະຖືກກວດສອບເພື່ອເອົາອອກ.
array2_1d: ອາເຣ 1 ມິຕິ, ເຊິ່ງລາຍການຂອງມັນຈະຖືກນຳໄປລົບອອກຈາກອາເຣນຳເຂົ້າທຳອິດ.
casesensitive: ອາຄິວເມັ້ນນີ້ໃຊ້ໄດ້ສະເພາະເມື່ອອາເຣປະກອບມີຂໍ້ຄວາມ (ຄ່າເລີ່ມຕົ້ນ = False).
Dim a As Variant
a = SF_Array.Difference(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("A", "B")
ຂຽນທຸກລາຍການຂອງອາເຣຕາມລຳດັບລົງໃນໄຟລ໌ຂໍ້ຄວາມ. ຖ້າໄຟລ໌ມີຢູ່ແລ້ວ, ມັນຈະຖືກຂຽນທັບໂດຍບໍ່ມີການແຈ້ງເຕືອນ.
svc.ExportToTextFile(array_1d: any[0..*], filename: str, [encoding: str]): bool
array_1d: ອາເຣທີ່ຈະສົ່ງອອກ. ມັນຕ້ອງປະກອບມີພຽງແຕ່ຂໍ້ຄວາມເທົ່ານັ້ນ.
filename: ຊື່ຂອງໄຟລ໌ຂໍ້ຄວາມທີ່ຈະຂຽນຂໍ້ມູນລົງໄປ. ຊື່ຕ້ອງຖືກລະບຸຕາມຄຸນສົມບັດ FileNaming ປະຈຸບັນຂອງການບໍລິການ SF_FileSystem.
encoding: ຊຸດຕົວອັກສອນທີ່ຈະໃຊ້. ໃຫ້ໃຊ້ຊື່ໃດໜຶ່ງທີ່ຢູ່ໃນລາຍຊື່ ຊຸດຕົວອັກສອນ IANA. ໝາຍເຫດວ່າ LibreOffice ອາດຈະບໍ່ຮອງຮັບທຸກຊຸດຕົວອັກສອນທີ່ມີຢູ່ (ຄ່າເລີ່ມຕົ້ນແມ່ນ "UTF-8").
SF_Array.ExportToTextFile(Array("A","B","C","D"), "C:\Temp\A short file.txt")
ດຶງຂໍ້ມູນຄໍລຳທີ່ລະບຸຈາກອາເຣສອງມິຕິອອກມາເປັນອາເຣໃໝ່.
ຂອບເຂດລຸ່ມ LBound ແລະ ຂອບເຂດເທິງ UBound ຂອງມັນຈະຄືກັນກັບມິຕິທຳອິດຂອງອາເຣນຳເຂົ້າ.
svc.ExtractColumn(array_2d: any[0..*, 0..*], columnindex: int): any[0..*, 0..*]
array_2d: ອາເຣທີ່ຈະດຶງຂໍ້ມູນອອກມາ.
columnindex: ເລກຄໍລຳທີ່ຈະດຶງອອກມາ - ຕ້ອງຢູ່ໃນຊ່ວງ [LBound, UBound].
'ສ້າງມາຕຣິກ 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))
'ດຶງຄໍລຳທີສາມອອກມາ: |3, 6, 9|
col = SF_Array.ExtractColumn(mat, 2)
ດຶງຂໍ້ມູນແຖວທີ່ລະບຸຈາກອາເຣສອງມິຕິອອກມາເປັນອາເຣໃໝ່.
ຂອບເຂດລຸ່ມ LBound ແລະ ຂອບເຂດເທິງ UBound ຂອງມັນຈະຄືກັນກັບມິຕິທີສອງຂອງອາເຣນຳເຂົ້າ.
svc.ExtractRow(array_2d: any[0..*, 0..*], rowindex: int): any[0..*, 0..*]
array_2d: ອາເຣທີ່ຈະດຶງຂໍ້ມູນອອກມາ.
rowindex: ເລກແຖວທີ່ຈະດຶງອອກມາ - ຕ້ອງຢູ່ໃນຊ່ວງ [LBound, UBound].
'ສ້າງມາຕຣິກ 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))
'ດຶງແຖວທຳອິດອອກມາ: |1, 2, 3|
row = SF_Array.ExtractRow(mat, 0)
ລວບລວມທຸກລາຍການຂອງອາເຣ ແລະ ທຸກລາຍການໃນອາເຣຍ່ອຍຂອງມັນເຂົ້າເປັນອາເຣໃໝ່ອັນດຽວໂດຍບໍ່ມີອາເຣຍ່ອຍ. ອາເຣຍ່ອຍທີ່ວ່າງຈະຖືກຂ້າມໄປ ແລະ ອາເຣຍ່ອຍທີ່ມີຈຳນວນມິຕິຫຼາຍກວ່າໜຶ່ງຈະບໍ່ຖືກເຮັດໃຫ້ແປ (flattened).
svc.Flatten(array_1d: any[0..*]): any[0..*]
array_1d: ອາເຣທີ່ມີຢູ່ແລ້ວ, ອາດຈະວ່າງກໍໄດ້.
Dim a As Variant
a = SF_Array.Flatten(Array(Array(1, 2, 3), 4, 5))
' (1, 2, 3, 4, 5)
ທ່ານສາມາດໃຊ້ວິທີການ Flatten ຮ່ວມກັບວິທີການອື່ນໆ ເຊັ່ນ Append ຫຼື Prepend ເພື່ອລວມຊຸດຂອງອາເຣ 1D ເຂົ້າເປັນອາເຣ 1D ອັນດຽວ.
ຕໍ່ໄປນີ້ແມ່ນຕົວຢ່າງຂອງວິທີການລວມວິທີການ Flatten ແລະ Append ເຂົ້າກັນເພື່ອເຊື່ອມຕໍ່ສາມອາເຣ.
'ສ້າງສາມອາເຣສຳລັບຕົວຢ່າງນີ້
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)
'ເຊື່ອມຕໍ່ສາມອາເຣເຂົ້າເປັນອາເຣ 1D ອັນດຽວ
Dim arr as Variant
arr = SF_Array.Flatten(SF_Array.Append(a, b, c))
'(1, 2, 3, 4, 5, 6, 7, 8, 9)
ນຳເຂົ້າຂໍ້ມູນທີ່ຢູ່ໃນໄຟລ໌ CSV (comma-separated values). ເຄື່ອງໝາຍຈຸດອາດຈະຖືກແທນທີ່ດ້ວຍຕົວອັກສອນໃດໆກໍໄດ້.
ຮູບແບບ CSV ທີ່ນຳໃຊ້ແມ່ນໄດ້ອະທິບາຍໄວ້ໃນ IETF Common Format and MIME Type for CSV Files.
ແຕ່ລະແຖວໃນໄຟລ໌ປະກອບມີໜຶ່ງເຣັກຄອດທີ່ສົມບູນ (ບໍ່ອະນຸຍາດໃຫ້ແຍກແຖວ).
ແນວໃດກໍຕາມ ລຳດັບເຊັ່ນ \n, \t, ... ຈະບໍ່ມີການປ່ຽນແປງ. ໃຫ້ໃຊ້ວິທີການ SF_String.Unescape() ເພື່ອຈັດການພວກມັນ.
ວິທີການນີ້ຈະສົ່ງຄືນອາເຣສອງມິຕິ ເຊິ່ງແຖວຕ່າງໆຈະກົງກັບແຕ່ລະເຣັກຄອດທີ່ອ່ານຈາກໄຟລ໌ ແລະ ຄໍລຳຕ່າງໆຈະກົງກັບແຕ່ລະຟີວ (Field) ຂອງເຣັກຄອດ. ຈະບໍ່ມີການກວດສອບຄວາມສອດຄ່ອງຂອງປະເພດຂໍ້ມູນໃນແຕ່ລະຄໍລຳ. ຈະມີການຄາດເດົາທີ່ດີທີ່ສຸດເພື່ອລະບຸປະເພດຕົວເລກ ແລະ ວັນທີ.
ຖ້າແຖວໃດໜຶ່ງມີຈຳນວນຟີວນ້ອຍກວ່າ ຫຼື ຫຼາຍກວ່າແຖວທຳອິດໃນໄຟລ໌, ຈະມີການແຈ້ງຂໍ້ຜິດພາດ (exception). ສ່ວນແຖວວ່າງຈະຖືກຂ້າມໄປ. ຖ້າຂະໜາດຂອງໄຟລ໌ເກີນຂີດຈຳກັດຂອງຈຳນວນລາຍການ, ຈະມີການແຈ້ງເຕືອນ ແລະ ອາເຣຈະຖືກຕັດອອກ.
svc.ImportFromCSVFile(filename: str, delimiter: str = ',', dateformat: str = ''): any[0..*]
filename: ຊື່ຂອງໄຟລ໌ຂໍ້ຄວາມທີ່ມີຂໍ້ມູນ. ຊື່ຕ້ອງຖືກລະບຸຕາມຄຸນສົມບັດ FileNaming ປະຈຸບັນຂອງການບໍລິການ SF_FileSystem.
delimiter: ຕົວອັກສອນດຽວ, ປົກກະຕິແລ້ວແມ່ນເຄື່ອງໝາຍຈຸດ, ຈຸດຈ້ຳ ຫຼື ຕົວອັກສອນ TAB (ຄ່າເລີ່ມຕົ້ນ = ",").
dateformat: ຈະມີກົນໄກພິເສດຈັດການວັນທີເມື່ອ dateformat ເປັນ "YYYY-MM-DD", "DD-MM-YYYY" ຫຼື "MM-DD-YYYY". ເຄື່ອງໝາຍຂີດ (-) ອາດຈະຖືກແທນທີ່ດ້ວຍຈຸດ (.), ສະແລັດ (/) ຫຼື ຍະວ່າງ. ຮູບແບບວັນທີອື່ນໆຈະຖືກຂ້າມໄປ. ວັນທີທີ່ເປັນຂໍ້ຄວາມວ່າງ "" ຈະຖືກຖືວ່າເປັນຂໍ້ຄວາມທຳມະດາ.
ຕົວຢ່າງໄຟລ໌ CSV "myFile.csv" ທີ່ມີເນື້ອໃນດັ່ງນີ້:
Name,DateOfBirth,Address,City
Anna,2002/03/31,"Rue de l'église, 21",Toulouse
Fred,1998/05/04,"Rue Albert Einstein, 113A",Carcassonne
ຕົວຢ່າງລຸ່ມນີ້ໃນ Basic ແລະ Python ອ່ານເນື້ອໃນຂອງໄຟລ໌ CSV ເຂົ້າໃນວັດຖຸ Array.
Dim arr As Variant
arr = SF_Array.ImportFromCSVFile("C:\Temp\myFile.csv", DateFormat := "YYYY/MM/DD")
MsgBox arr(0, 3) ' City
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", dateformat = "YYYY/MM/DD")
bas.MsgBox(arr[0][3]) # City
bas.MsgBox(arr[1][2]) # Rue de l'église, 21
bas.MsgBox(arr[1][3]) # Toulouse
ຄົ້ນຫາຕົວເລກ, ຂໍ້ຄວາມ ຫຼື ວັນທີໃນອາເຣໜຶ່ງມິຕິ. ການປຽບທຽບຂໍ້ຄວາມສາມາດກຳນົດໃຫ້ກວດສອບຕົວພິມໃຫຍ່-ນ້ອຍໄດ້.
ຖ້າອາເຣຖືກຈັດລຽງແລ້ວ ມັນຕ້ອງມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ, ໝາຍຄວາມວ່າທຸກລາຍການຕ້ອງເປັນສະກາລາປະເພດດຽວກັນ (ຫ້າມມີລາຍການ Empty ແລະ Null).
ຜົນໄດ້ຮັບຂອງວິທີການນີ້ອາດຈະຜິດພາດໄດ້ ຖ້າລະບຸວ່າອາເຣຈັດລຽງແລ້ວ ແຕ່ຄວາມຈິງແລ້ວບໍ່ໄດ້ຈັດລຽງ.
ຈະໃຊ້ການຄົ້ນຫາແບບໄບນາຣີໃນອາເຣທີ່ຈັດລຽງແລ້ວ. ຖ້າບໍ່ດັ່ງນັ້ນ ຈະເປັນການກວດສອບແຕ່ເທິງລົງລຸ່ມ ແລະ ຈະຂ້າມລາຍການ Empty ກັບ Null ໄປ.
ວິທີການນີ້ຈະສົ່ງຄືນ LBound(input array) - 1 ຖ້າຄົ້ນຫາບໍ່ພົບ.
svc.IndexOf(array_1d: any[0..*], tofind: any, casesensitive: bool = False, sortorder: str = ''): int
array_1d: ອາເຣທີ່ຈະກວດສອບ.
tofind: ຕົວເລກ, ວັນທີ ຫຼື ຂໍ້ຄວາມທີ່ຈະຄົ້ນຫາ.
casesensitive: ໃຊ້ສຳລັບການປຽບທຽບຂໍ້ຄວາມເທົ່ານັ້ນ (ຄ່າເລີ່ມຕົ້ນ = False).
sortorder: ສາມາດເປັນ "ASC", "DESC" ຫຼື "" (ບໍ່ໄດ້ຈັດລຽງ). ຄ່າເລີ່ມຕົ້ນແມ່ນ "".
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
ແຊກລາຍການທີ່ລະບຸໃນອາຄິວເມັ້ນເຂົ້າໄປກ່ອນດັດຊະນີ (index) ທີ່ກຳນົດຂອງອາເຣ.
ອາຄິວເມັ້ນຕ່າງໆຈະຖືກແຊກເຂົ້າໄປໂດຍກົງ. ແຕ່ລະອັນອາດຈະເປັນສະກາລາປະເພດໃດກໍໄດ້ ຫຼື ເປັນອາເຣຍ່ອຍ.
svc.Insert(array_1d: any[0..*], before: int, arg0: any, [arg1: any] ...): any[0..*]
array_1d: ອາເຣທີ່ມີຢູ່ແລ້ວ, ອາດຈະວ່າງກໍໄດ້.
before: ດັດຊະນີທີ່ຈະແຊກເຂົ້າໄປກ່ອນ; ຕ້ອງຢູ່ໃນຊ່ວງ [LBound, UBound + 1].
arg0, arg1, ...: ລາຍການທີ່ຈະຖືກແຊກເຂົ້າໃນ array_1d.
Dim a As Variant
a = SF_Array.Insert(Array(1, 2, 3), 2, "a", "b")
' (1, 2, "a", "b", 3)
ແຊກລາຍການໃໝ່ລົງໃນຕຳແໜ່ງທີ່ຖືກຕ້ອງໃນອາເຣທີ່ຈັດລຽງແລ້ວ.
ອາເຣຕ້ອງມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ, ໝາຍຄວາມວ່າທຸກລາຍການຕ້ອງເປັນສະກາລາປະເພດດຽວກັນ.
ຫ້າມມີລາຍການ Empty ແລະ Null.
svc.InsertSorted(array_1d: any[0..*], item: any, sortorder: str = 'ASC', casesensitive: bool = False): any[0..*]
array_1d: ອາເຣທີ່ຈະແຊກຄ່າເຂົ້າໄປ.
item: ຄ່າສະກາລາທີ່ຈະແຊກ, ຕ້ອງເປັນປະເພດດຽວກັບລາຍການທີ່ມີຢູ່ໃນອາເຣ.
sortorder: ສາມາດເປັນ "ASC" (ຄ່າເລີ່ມຕົ້ນ) ຫຼື "DESC".
casesensitive: ໃຊ້ສຳລັບການປຽບທຽບຂໍ້ຄວາມເທົ່ານັ້ນ (ຄ່າເລີ່ມຕົ້ນ = False).
Dim a As Variant
a = SF_Array.InsertSorted(Array("A", "C", "a", "b"), "B", CaseSensitive := True)
' ("A", "B", "C", "a", "b")
ສ້າງເຊັດໃນຮູບແບບອາເຣທີ່ເລີ່ມຈາກສູນ ໂດຍໃຊ້ຕົວດຳເນີນການສ່ວນຮ່ວມ (intersection) ກັບອາເຣນຳເຂົ້າສອງອັນ. ລາຍການຜົນໄດ້ຮັບແມ່ນລາຍການທີ່ມີຢູ່ໃນທັງສອງອາເຣ.
ອາເຣທີ່ໄດ້ຈະຖືກຈັດລຽງຕາມລຳດັບຈາກນ້ອຍໄປຫາຫຼາຍ.
ທັງສອງອາເຣນຳເຂົ້າມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ, ໝາຍຄວາມວ່າທຸກລາຍການຕ້ອງເປັນສະກາລາປະເພດດຽວກັນ. ຫ້າມມີລາຍການ Empty ແລະ Null.
ການປຽບທຽບຂໍ້ຄວາມສາມາດກຳນົດໃຫ້ກວດສອບຕົວພິມໃຫຍ່-ນ້ອຍໄດ້.
svc.Intersection(array1_1d: any[0..*], array2_1d: any[0..*], casesensitive: bool = False): any[0..*]
array1_1d: ອາເຣນຳເຂົ້າທຳອິດ.
array2_1d: ອາເຣນຳເຂົ້າທີສອງ.
casesensitive: ໃຊ້ກັບອາເຣທີ່ປະກອບມີຂໍ້ຄວາມ (ຄ່າເລີ່ມຕົ້ນ = False).
Dim a As Variant
a = SF_Array.Intersection(Array("A", "C", "A", "b", "B"), Array("C", "Z", "b"), True)
' ("C", "b")
ລວມອາເຣສອງມິຕິໂດຍໃຊ້ຕົວຂັ້ນສອງຕົວ, ຕົວໜຶ່ງສຳລັບຄໍລຳ ແລະ ອີກຕົວໜຶ່ງສຳລັບແຖວ.
svc.Join2D(array_2d: any [0..*, 0..*], [columndelimiter: str], [rowdelimiter: str], [quote: str]): str
array_2d: ແຕ່ລະລາຍການຕ້ອງເປັນຂໍ້ຄວາມ, ຕົວເລກ, ວັນທີ ຫຼື ບູລີນ.
ວັນທີຈະຖືກແປງເປັນຮູບແບບ YYYY-MM-DD hh:mm:ss.
ລາຍການທີ່ບໍ່ຖືກຕ້ອງຈະຖືກແທນດ້ວຍຂໍ້ຄວາມວ່າງ.
columndelimiter: ຕົວຂັ້ນແຕ່ລະຄໍລຳ (ຄ່າເລີ່ມຕົ້ນ = Tab/Chr(9)).
rowdelimiter: ຕົວຂັ້ນແຕ່ລະແຖວ (ຄ່າເລີ່ມຕົ້ນ = LineFeed/Chr(10))
quote: ຖ້າເປັນ True, ຈະຄຸມຂໍ້ຄວາມດ້ວຍເຄື່ອງໝາຍຄຳເວົ້າສອງຊັ້ນ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 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
ເພີ່ມລາຍການທີ່ລະບຸໃນອາຄິວເມັ້ນເຂົ້າໄປທີ່ສ່ວນຕົ້ນຂອງອາເຣ.
svc.Prepend(array_1d: any[0..*], arg0: any, [arg1: any] ...): any[0..*]
array_1d: ອາເຣທີ່ມີຢູ່ແລ້ວ, ອາດຈະວ່າງກໍໄດ້.
arg0, arg1, ...: ລາຍການທີ່ຈະຖືກເພີ່ມເຂົ້າທີ່ສ່ວນຕົ້ນຂອງ array_1d.
Dim a As Variant
a = SF_Array.Prepend(Array(1, 2, 3), 4, 5)
' (4, 5, 1, 2, 3)
ເພີ່ມຄໍລຳໃໝ່ເຂົ້າທາງດ້ານຊ້າຍຂອງອາເຣສອງມິຕິ. ອາເຣທີ່ໄດ້ຈະມີຂອບເຂດເລີ່ມຕົ້ນຄືກັນກັບອາເຣສອງມິຕິເດີມ.
svc.PrependColumn(array_2d: any[0..*, 0..*], column: any[0..*]): any[0..*, 0..*]
array_2d: ອາເຣທີ່ມີຢູ່ແລ້ວ, ອາດຈະວ່າງກໍໄດ້. ຖ້າອາເຣນັ້ນມີ 1 ມິຕິ, ມັນຈະຖືກຖືວ່າເປັນຄໍລຳສຸດທ້າຍຂອງອາເຣ 2 ມິຕິທີ່ໄດ້.
column: ອາເຣໜຶ່ງມິຕິທີ່ມີຈຳນວນລາຍການເທົ່າກັບຈຳນວນແຖວໃນ 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
ເພີ່ມແຖວໃໝ່ເຂົ້າທີ່ສ່ວນຕົ້ນຂອງອາເຣສອງມິຕິ. ອາເຣທີ່ໄດ້ຈະມີຂອບເຂດເລີ່ມຕົ້ນຄືກັນກັບອາເຣສອງມິຕິເດີມ.
svc.PrependRow(array_2d: any[0..*, 0..*], row: any[0..*]): any[0..*, 0..*]
array_2d: ອາເຣທີ່ມີຢູ່ແລ້ວ, ອາດຈະວ່າງກໍໄດ້. ຖ້າອາເຣນັ້ນມີ 1 ມິຕິ, ມັນຈະຖືກຖືວ່າເປັນແຖວສຸດທ້າຍຂອງອາເຣສອງມິຕິທີ່ໄດ້.
row: ອາເຣໜຶ່ງມິຕິທີ່ມີຈຳນວນລາຍການເທົ່າກັບຈຳນວນຄໍລຳໃນ 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
ກຳນົດຄ່າເລີ່ມຕົ້ນໃຫ້ກັບອາເຣໃໝ່ທີ່ເລີ່ມຈາກສູນດ້ວຍຄ່າຕົວເລກ.
svc.RangeInit(from: num, upto: num, [bystep: num]): num[0..*]
from: ຄ່າຂອງລາຍການທຳອິດ.
upto: ລາຍການສຸດທ້າຍບໍ່ຄວນເກີນ UpTo.
bystep: ຜົນຕ່າງລະຫວ່າງສອງລາຍການທີ່ຕໍ່ກັນ (ຄ່າເລີ່ມຕົ້ນ = 1).
Dim a As Variant
a = SF_Array.RangeInit(10, 1, -1)
' (10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
ສົ່ງຄືນອາເຣໜຶ່ງມິຕິແບບປີ້ນກັບ (reversed).
svc.Reverse(array_1d: any[0..*]): any[0..*]
array_1d: ອາເຣທີ່ຈະປີ້ນກັບ.
Dim a As Variant
a = SF_Array.Reverse(Array("a", 2, 3, 4))
' (4, 3, 2, "a")
ສົ່ງຄືນອາເຣໜຶ່ງມິຕິແບບສຸ່ມລຳດັບ (permutation).
svc.Shuffle(array_1d: any[0..*]): any[0..*]
array_1d: ອາເຣທີ່ຈະສຸ່ມລຳດັບ.
Dim a As Variant
a = SF_Array.Shuffle(Array(1, 2, 3, 4))
' ຕອນນີ້ອາເຣ "a" ຢູ່ໃນລຳດັບແບບສຸ່ມ, ເຊັ່ນ (2, 3, 1, 4)
ສົ່ງຄືນສ່ວນຍ່ອຍ (subset) ຂອງອາເຣໜຶ່ງມິຕິ.
svc.Slice(array_1d: any[0..*], from: int, [upto: int]): any[0..*]
array_1d: ອາເຣທີ່ຈະຕັດແບ່ງ.
from: ດັດຊະນີເລີ່ມຕົ້ນໃນ array_1d ຂອງອາເຣຍ່ອຍທີ່ຈະດຶງອອກມາ (ລວມເອົາ from ນຳ)
upto: ດັດຊະນີສຸດທ້າຍໃນ array_1d ຂອງອາເຣຍ່ອຍທີ່ຈະດຶງອອກມາ (ລວມເອົາ upto ນຳ). ຄ່າເລີ່ມຕົ້ນແມ່ນຂອບເຂດສູງສຸດຂອງ array_1d. ຖ້າ upto < from ອາເຣທີ່ສົ່ງຄືນຈະເປັນອາເຣວ່າງ.
Dim a As Variant
a = SF_Array.Slice(Array(1, 2, 3, 4, 5), 1, 3) ' (2, 3, 4)
ຈັດລຽງອາເຣໜຶ່ງມິຕິຕາມລຳດັບຈາກນ້ອຍໄປຫາຫຼາຍ ຫຼື ຈາກຫຼາຍໄປຫານ້ອຍ. ການປຽບທຽບຂໍ້ຄວາມສາມາດກຳນົດໃຫ້ກວດສອບຕົວພິມໃຫຍ່-ນ້ອຍໄດ້.
ອາເຣຕ້ອງມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ.
ອະນຸຍາດໃຫ້ມີລາຍການ Empty ແລະ Null. ໂດຍປົກກະຕິແລ້ວ Empty < Null < ຄ່າສະກາລາອື່ນໆ.
svc.Sort(array_1d: any[0..*], sortorder: str, casesensitive: bool = False): any[0..*]
array_1d: ອາເຣທີ່ຈະຈັດລຽງ.
sortorder: ສາມາດເປັນ "ASC" (ຄ່າເລີ່ມຕົ້ນ) ຫຼື "DESC".
casesensitive: ໃຊ້ສຳລັບການປຽບທຽບຂໍ້ຄວາມເທົ່ານັ້ນ (ຄ່າເລີ່ມຕົ້ນ = False).
Dim a As Variant
a = SF_Array.Sort(Array("a", "A", "b", "B", "C"), CaseSensitive := True)
' ("A", "B", "C", "a", "b")
ສົ່ງຄືນລຳດັບໃໝ່ຂອງຄໍລຳໃນອາເຣສອງມິຕິ, ໂດຍຈັດລຽງຕາມຄ່າໃນແຖວທີ່ກຳນົດ.
ແຖວນັ້ນຕ້ອງມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ.
ອະນຸຍາດໃຫ້ມີລາຍການ Empty ແລະ Null. ໂດຍປົກກະຕິແລ້ວ Empty < Null < ຄ່າສະກາລາອື່ນໆ.
svc.SortColumns(array_2d: any[0..*, 0..*], rowindex: int, sortorder: str, casesensitive: bool = False): any[0..*, 0..*]
array_2d: ອາເຣສອງມິຕິທີ່ຈະຈັດລຽງ.
rowindex: ດັດຊະນີຂອງແຖວທີ່ຈະໃຊ້ເປັນບ່ອນອ້າງອີງເພື່ອຈັດລຽງຄໍລຳ.
sortorder: ສາມາດເປັນ "ASC" (ຄ່າເລີ່ມຕົ້ນ) ຫຼື "DESC".
casesensitive: ໃຊ້ສຳລັບການປຽບທຽບຂໍ້ຄວາມເທົ່ານັ້ນ (ຄ່າເລີ່ມຕົ້ນ = 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 |
ສົ່ງຄືນລຳດັບໃໝ່ຂອງແຖວໃນອາເຣສອງມິຕິ, ໂດຍຈັດລຽງຕາມຄ່າໃນຄໍລຳທີ່ກຳນົດ.
ຄໍລຳນັ້ນຕ້ອງມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ.
ອະນຸຍາດໃຫ້ມີລາຍການ Empty ແລະ Null. ໂດຍປົກກະຕິແລ້ວ Empty < Null < ຄ່າສະກາລາອື່ນໆ.
svc.SortRows(array_2d: any[0..*, 0..*], columnindex: int, sortorder: str, casesensitive: bool = False): any[0..*, 0..*]
array_2d: ອາເຣທີ່ຈະຈັດລຽງ.
columnindex: ດັດຊະນີຂອງຄໍລຳທີ່ຈະໃຊ້ເປັນບ່ອນອ້າງອີງເພື່ອຈັດລຽງແຖວ.
sortorder: ສາມາດເປັນ "ASC" (ຄ່າເລີ່ມຕົ້ນ) ຫຼື "DESC".
casesensitive: ໃຊ້ສຳລັບການປຽບທຽບຂໍ້ຄວາມເທົ່ານັ້ນ (ຄ່າເລີ່ມຕົ້ນ = 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 |
ສະຫຼັບແຖວ ແລະ ຄໍລຳໃນອາເຣສອງມິຕິ (transpose).
svc.Transpose(array_2d: any[0..*, 0..*]): any[0..*, 0..*]
array_2d: ອາເຣສອງມິຕິທີ່ຈະສະຫຼັບແຖວ ແລະ ຄໍລຳ.
' 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
ເອົາລາຍການ Null, Empty ແລະ ລາຍການທີ່ວ່າງທັງໝົດອອກຈາກອາເຣໜຶ່ງມິຕິ.
ຂໍ້ຄວາມຕ່າງໆຈະຖືກຕັດຍະວ່າງຫົວທ້າຍອອກດ້ວຍຟັງຊັນ Trim() ຂອງ LibreOffice Basic.
svc.TrimArray(array_1d: any[0..*]): any[0..*]
array_1d: ອາເຣທີ່ຈະຕັດແຕ່ງ.
Dim a As Variant
a = SF_Array.TrimArray(Array("A", "B", Null, " D "))
' ("A", "B", "D")
ສ້າງເຊັດໃນຮູບແບບອາເຣທີ່ເລີ່ມຈາກສູນ ໂດຍໃຊ້ຕົວດຳເນີນການຢູເນຍ (union) ກັບອາເຣນຳເຂົ້າສອງອັນ. ລາຍການຜົນໄດ້ຮັບຈະມາຈາກອາເຣທັງສອງ.
ອາເຣທີ່ໄດ້ຈະຖືກຈັດລຽງຕາມລຳດັບຈາກນ້ອຍໄປຫາຫຼາຍ.
ທັງສອງອາເຣນຳເຂົ້າມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ, ລາຍການຂອງພວກມັນຕ້ອງເປັນສະກາລາປະເພດດຽວກັນ. ຫ້າມມີລາຍການ Empty ແລະ Null.
ການປຽບທຽບຂໍ້ຄວາມສາມາດກຳນົດໃຫ້ກວດສອບຕົວພິມໃຫຍ່-ນ້ອຍໄດ້.
svc.Union(array1_1d: any[0..*], array2_1d: any[0..*], casesensitive: bool = False): any[0..*]
array1_1d: ອາເຣນຳເຂົ້າທຳອິດ.
array2_1d: ອາເຣນຳເຂົ້າທີສອງ.
casesensitive: ໃຊ້ໄດ້ສະເພາະເມື່ອອາເຣປະກອບມີຂໍ້ຄວາມ (ຄ່າເລີ່ມຕົ້ນ = 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")
ສ້າງເຊັດຂອງຄ່າທີ່ບໍ່ຊ້ຳກັນຈາກອາເຣນຳເຂົ້າ.
ອາເຣນຳເຂົ້າຕ້ອງມີຂໍ້ມູນປະເພດດຽວກັນທັງໝົດ, ລາຍການຂອງມັນຕ້ອງເປັນສະກາລາປະເພດດຽວກັນ. ຫ້າມມີລາຍການ Empty ແລະ Null.
ການປຽບທຽບຂໍ້ຄວາມສາມາດກຳນົດໃຫ້ກວດສອບຕົວພິມໃຫຍ່-ນ້ອຍໄດ້.
svc.Unique(array_1d: any[0..*], casesensitive: bool = False): any[0..*]
array_1d: ອາເຣນຳເຂົ້າ.
casesensitive: ໃຊ້ໄດ້ສະເພາະເມື່ອອາເຣປະກອບມີຂໍ້ຄວາມ (ຄ່າເລີ່ມຕົ້ນ = False).
Dim a As Variant
a = SF_Array.Unique(Array("A", "C", "A", "b", "B"), CaseSensitive := True)
' ("A", "B", "C", "b")