ເນື້ອໃນ

# ບໍລິການ ScriptForge.Dictionary

ດິກຊັນນາຣີ (dictionary) ແມ່ນການຮວບຮວມຂອງຄູ່ ຄີ-ລາຍການ (key-item pairs)

- ຄີ (key) ແມ່ນຂໍ້ຄວາມ. ໃນສະຄຣິບ Basic, ການແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ຂອງຄີແມ່ນຖືກກຳນົດຕອນສ້າງ Dictionary. ໃນສະຄຣິບ Python, ຄີຈະແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ສະເໝີ.

- ລາຍການ (Items) ສາມາດເປັນປະເພດໃດກໍໄດ້

ຄີ ແລະ ລາຍການ ສາມາດດຶງມາໃຊ້, ນັບຈຳນວນ, ອັບເດດ ແລະ ອື່ນໆອີກຫຼາຍຢ່າງ.

ບໍລິການ Dictionary ຄ້າຍຄືກັບວັດຖຸ Collection ທີ່ມີມາໃຫ້ໃນຕົວຂອງ LibreOffice Basic, ແຕ່ມີຄຸນສົມບັດຫຼາຍກວ່າ. ຕົວຢ່າງ: ວັດຖຸ Collection ບໍ່ຮອງຮັບການດຶງຄີມາໃຊ້. ນອກຈາກນັ້ນ, Dictionary ຍັງມີຄວາມສາມາດເພີ່ມເຕີມ ເຊັ່ນ: ການປ່ຽນແທນຄີ, ການກວດສອບວ່າຄີໃດໜຶ່ງມີຢູ່ແລ້ວຫຼືບໍ່ ແລະ ການແປງ Dictionary ໃຫ້ເປັນອາເຣຂອງ PropertyValues ຫຼື ຂໍ້ຄວາມ JSON.

## ການເອີ້ນໃຊ້ບໍລິການ

##### ໃນ Basic

ຕົວຢ່າງຕໍ່ໄປນີ້ຈະສ້າງ myDict ເປັນດິກຊັນນາຣີຫວ່າງເປົ່າ.

        GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
        Dim myDict As Variant
        myDict = CreateScriptService("Dictionary", True)
                    ' ຄີຈະແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່, ດັ່ງນັ້ນອາຄິວເມັນທີສອງຈຶ່ງເປັນ True

ແນະນຳໃຫ້ຄືນຊັບພະຍາກອນ (free resources) ຫຼັງຈາກໃຊ້ງານແລ້ວ:

         Set myDict = myDict.Dispose()

##### ໃນ Python

ຕົວຢ່າງລຸ່ມນີ້ຈະສ້າງອິນສະແຕນຊ໌ຫວ່າງເປົ່າຂອງບໍລິການ Dictionary ແລະ ໃຊ້ວິທີການ update ຂອງ Python ເອງເພື່ອຕື່ມຂໍ້ມູນໃສ່ດ້ວຍເນື້ອໃນຈາກວັດຖຸ dict ຂອງ Python.

        dico = dict('A' = 1, 'B' = 2, 'C' = 3)
        # ເລີ່ມຕົ້ນ myDict ເປັນວັດຖຸ Dictionary ຫວ່າງເປົ່າ
        myDict = CreateScriptService('Dictionary')
        # ໂຫຼດຄ່າຈາກ dico ເຂົ້າໃນ myDict
        myDict.update(dico)
        myDict['D'] = 4
        print(myDict)   # {'A': 1, 'B': 2, 'C': 3, 'D': 4}
        propval = myDict.ConvertToPropertyValues()

ທ່ານສາມາດສ້າງອິນສະແຕນຊ໌ຂອງບໍລິການ Dictionary ໂດຍໃຊ້ວັດຖຸ dict ຂອງ Python ເປັນອາຄິວເມັນ ດັ່ງທີ່ສະແດງໃນຕົວຢ່າງຕໍ່ໄປນີ້.

        dico = dict('A' = 1, 'B' = 2, 'C' = 3)
        # ເລີ່ມຕົ້ນ myDict ດ້ວຍເນື້ອໃນຂອງ dico
        myDict = CreateScriptService('Dictionary', dico)
        myDict['D'] = 4
        print(myDict) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}
        propval = myDict.ConvertToPropertyValues()

ເນື່ອງຈາກ Python ມີການຮອງຮັບ dictionary ໃນຕົວຢູ່ແລ້ວ, ວິທີການສ່ວນໃຫຍ່ໃນບໍລິການ Dictionary ຈຶ່ງມີໃຫ້ໃຊ້ສະເພາະສຳລັບສະຄຣິບ Basic ເທົ່ານັ້ນ. ຍົກເວັ້ນວິທີການ ConvertToPropertyValues ແລະ ImportFromPropertyValues ທີ່ຮອງຮັບທັງໃນ Basic ແລະ Python.

## ຄຸນສົມບັດ

ຊື່ | ອ່ານຢ່າງດຽວ | ປະເພດ | ຄຳອະທິບາຍ
--- | --- | --- | ---
Count | ແມ່ນ | Long | ຈຳນວນລາຍການໃນດິກຊັນນາຣີ
Items | ແມ່ນ | ອາເຣຂອງ Variant | ລາຍການທັງໝົດໃນຮູບແບບອາເຣໜຶ່ງມິຕິ
Keys | ແມ່ນ | ອາເຣຂອງຂໍ້ຄວາມ | ຄີທັງໝົດໃນຮູບແບບອາເຣໜຶ່ງມິຕິ

ຄຸນສົມບັດ Keys ແລະ Items ຈະສົ່ງຄືນເນື້ອໃນຂອງພວກມັນຕາມລຳດັບທີ່ກົງກັນ. ລຳດັບນີ້ບໍ່ກ່ຽວກັບລຳດັບການສ້າງ.

### ຕົວຢ່າງ:

ຕົວຢ່າງຕໍ່ໄປນີ້ໃຊ້ຄຸນສົມບັດ Keys ເພື່ອວົນຊ້ຳ (iterate) ຜ່ານຄີທັງໝົດໃນດິກຊັນນາຣີ myDict.

        Dim a As Variant, b As String
        a = myDict.Keys
        For Each b In a
            MsgBox(myDict.Item(b))
        Next b

ລາຍການວິທີການໃນບໍລິການ Dictionary
Add ConvertToArray ConvertToJson ConvertToPropertyValues | Exists ImportFromJson ImportFromPropertyValues Item | Remove RemoveAll ReplaceItem ReplaceKey

## Add

ເພີ່ມຄູ່ ຄີ-ລາຍການ ໃໝ່ເຂົ້າໃນດິກຊັນນາຣີ. ສົ່ງຄືນ True ຖ້າສຳເລັດ.

### ໄວຍາກອນ:

dict.Add(key: str, item: any): bool

### ພາຣາມິເຕີ:

key: ຄ່າຂໍ້ຄວາມທີ່ໃຊ້ເພື່ອລະບຸລາຍການ (Item). ການແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ຂອງຄີແມ່ນຖືກກຳນົດຕອນສ້າງ Dictionary.

item: ຄ່າໃດໜຶ່ງ, ລວມເຖິງອາເຣ, ວັດຖຸ Basic, ວັດຖຸ UNO, ດິກຊັນນາຣີ ແລະ ອື່ນໆ.

### ຕົວຢ່າງ:

          Dim NewValue As Variant
          myDict.Add("NewKey", NewValue)

ທຸກໆຄີຕ້ອງບໍ່ຊ້ຳກັນໃນດິກຊັນນາຣີດຽວກັນ. ຖ້າຄີມີຢູ່ແລ້ວໃນດິກຊັນນາຣີ, ຈະເກີດຂໍ້ຜິດພາດ DUPLICATEKEYERROR. ຄີທີ່ປະກອບດ້ວຍຕົວອັກສອນຊ່ອງວ່າງຈະເກີດຂໍ້ຜິດພາດ INVALIDKEYERROR.

## ConvertToArray

ເກັບເນື້ອໃນຂອງດິກຊັນນາຣີໄວ້ໃນອາເຣສອງຖັນ (ເລີ່ມຕົ້ນດັດຊະນີທີ່ສູນ). ຄີຈະຖືກເກັບໄວ້ໃນຖັນທຳອິດ ແລະ ລາຍການຈະຖືກເກັບໄວ້ໃນຖັນທີສອງ.

ຖ້າດິກຊັນນາຣີຫວ່າງເປົ່າ, ວິທີການນີ້ຈະສົ່ງຄືນ Array ຫວ່າງເປົ່າ.

### ໄວຍາກອນ:

dict.ConvertToArray(): any[0..*, 0..1]

### ຕົວຢ່າງ:

          Dim myDict as Variant
          myDict = CreateScriptService("Dictionary")
          myDict.Add("a", 1)
          myDict.Add("b", 2)
          myDict.Add("c", 3)
          Dim arr as Variant
          arr = myDict.ConvertToArray()
          '(("a", 1), ("b", 2), ("c", 3))

## ConvertToJson

ແປງເນື້ອໃນຂອງດິກຊັນນາຣີໃຫ້ເປັນຂໍ້ຄວາມ JSON (JavaScript Object Notation).

### ຂໍ້ຈຳກັດ

ວິທີການນີ້ຮອງຮັບປະເພດຂໍ້ມູນຕໍ່ໄປນີ້: String, Boolean, ຕົວເລກ, Null ແລະ Empty. ອາເຣທີ່ບັນຈຸລາຍການປະເພດເຫຼົ່ານີ້ກໍໄດ້ຮັບອະນຸຍາດ, ບໍ່ວ່າຈະມີຈັກມິຕິກໍຕາມ. ວັນທີຈະຖືກແປງເປັນຂໍ້ຄວາມ, ແຕ່ພວກມັນບໍ່ສາມາດໃຊ້ພາຍໃນອາເຣໄດ້. ປະເພດຂໍ້ມູນອື່ນໆຈະຖືກແປງເປັນຂໍ້ຄວາມແທນໂດຍໃຊ້ບໍລິການ SF_String.Represent.

### ໄວຍາກອນ:

dict.ConvertToJson(indent: str = ""): str

### ພາຣາມິເຕີ:

indent: ເມື່ອ indent ເປັນຕົວເລກບວກ ຫຼື ຂໍ້ຄວາມ, ອົງປະກອບອາເຣ JSON ແລະ ສະມາຊິກວັດຖຸຈະຖືກສະແດງໃຫ້ສວຍງາມ (pretty-printed) ຕາມລະດັບການຍໍ້ໜ້ານັ້ນ. ຄ່າ indent ທີ່ເປັນລົບຈະເພີ່ມແຖວໃໝ່ໂດຍບໍ່ມີການຍໍ້ໜ້າ. ຄ່າເລີ່ມຕົ້ນແມ່ນຂໍ້ຄວາມຫວ່າງເປົ່າ "" ເຊິ່ງຈະເລືອກການສະແດງຜົນທີ່ກະທັດຮັດທີ່ສຸດ. ການໃຊ້ເລກຖ້ວນບວກສຳລັບ indent ຈະຍໍ້ໜ້າຕາມຈຳນວນຊ່ອງວ່າງຕໍ່ລະດັບ. ເມື່ອ indent ເປັນຂໍ້ຄວາມ ເຊັ່ນ Chr(9) ຫຼື Tab(1), ຕົວອັກສອນ Tab ຈະຖືກໃຊ້ເພື່ອຍໍ້ໜ້າໃນແຕ່ລະລະດັບ.

### ຕົວຢ່າງ:

          myDict.Add("p0", 12.5)
          myDict.Add("p1", "a string àé""ê")
          myDict.Add("p2", DateSerial(2020,9,28))
          myDict.Add("p3", True)
          myDict.Add("p4", Array(1,2,3))
          MsgBox myDict.ConvertToJson()
          '{"p0": 12.5, "p1": "a string \u00e0\u00e9\"\u00ea", "p2": "2020-09-28", "p3": true, "p4": [1, 2, 3]}

## ConvertToPropertyValues

ເກັບເນື້ອໃນຂອງດິກຊັນນາຣີໄວ້ໃນອາເຣຂອງ PropertyValues.

ແຕ່ລະລາຍການໃນອາເຣແມ່ນ com.sun.star.beans.PropertyValue. ຄີຈະຖືກເກັບໄວ້ໃນ Name, ລາຍການຈະຖືກເກັບໄວ້ໃນ Value.

ຖ້າມີລາຍການໃດໜຶ່ງທີ່ມີປະເພດ Date, ມັນຈະຖືກແປງເປັນໂຄງສ້າງ com.sun.star.util.DateTime. ຖ້າມີລາຍການໃດໜຶ່ງເປັນອາເຣຫວ່າງເປົ່າ, ມັນຈະຖືກແປງເປັນ Null. ອາເຣທີ່ໄດ້ຈະຫວ່າງເປົ່າເມື່ອດິກຊັນນາຣີຫວ່າງເປົ່າ.

### ໄວຍາກອນ:

dict.ConvertToPropertyValues(): obj[0..*]

### ຕົວຢ່າງ:

##### ໃນ Basic

        Dim myDict as Variant
        myDict = CreateScriptService("Dictionary")
        'ເພີ່ມຄຸນສົມບັດບາງຢ່າງໃຫ້ກັບດິກຊັນນາຣີ
        myDict.Add("Color", "Blue")
        myDict.Add("Width", 20)
        'ແປງເປັນອາເຣຂອງວັດຖຸ PropertyValue
        Dim prop as Variant
        prop = myDict.ConvertToPropertyValues()

##### ໃນ Python

ໝາຍເຫດໃນຕົວຢ່າງລຸ່ມນີ້ວ່າ dictionary ຂອງ Python ຈຳເປັນຕ້ອງຖືກສົ່ງເປັນອາຄິວເມັນທີສອງຂອງວິທີການ CreateScriptService.

        myDict = dict()
        myDict["Color"] = "Blue"
        myDict["Width"] = 30
        sfDic = CreateScriptService("Dictionary", myDict)
        prop = sfDic.ConvertToPropertyValues()

ບໍລິການ ແລະ ວິທີການຈຳນວນຫຼາຍໃນຫ້ອງສະໝຸດ UNO ຮັບພາຣາມິເຕີທີ່ສະແດງໂດຍໃຊ້ໂຄງສ້າງ PropertyValue, ເຊິ່ງເປັນສ່ວນໜຶ່ງຂອງ API ຂອງ LibreOffice.

## Exists

ກວດສອບວ່າຄີໃດໜຶ່ງມີຢູ່ໃນດິກຊັນນາຣີຫຼືບໍ່.

### ໄວຍາກອນ:

dict.Exists(key: str): bool

### ພາຣາມິເຕີ:

key: ຄີທີ່ຈະຄົ້ນຫາໃນດິກຊັນນາຣີ.

### ຕົວຢ່າງ:

        Dim myDict as Variant
        myDict = CreateScriptService("Dictionary")
        'ເພີ່ມຄຸນສົມບັດບາງຢ່າງໃຫ້ກັບດິກຊັນນາຣີ
        myDict.Add("Color", "Blue")
        myDict.Add("Width", 20)
        '(...)
        If Not myDict.Exists("Size") Then
           MsgBox "You have to provide a Size value"
        End If

## ImportFromJson

ເພີ່ມເນື້ອໃນຈາກຂໍ້ຄວາມ JSON (JavaScript Object Notation) ເຂົ້າໃນດິກຊັນນາຣີປັດຈຸບັນ. ສົ່ງຄືນ True ຖ້າສຳເລັດ.

### ຂໍ້ຈຳກັດ

ຂໍ້ຄວາມ JSON ອາດຈະບັນຈຸຕົວເລກ, ຂໍ້ຄວາມ, ບູລີນ, ຄ່າ null ແລະ ອາເຣທີ່ບັນຈຸປະເພດເຫຼົ່ານັ້ນ. ແຕ່ຕ້ອງບໍ່ບັນຈຸວັດຖຸ JSON ຫຼື ດິກຊັນນາຣີຍ່ອຍ.

ຈະມີການພະຍາຍາມແປງຂໍ້ຄວາມເປັນວັນທີ ຫາກລາຍການນັ້ນກົງກັບຮູບແບບໃດໜຶ່ງເຫຼົ່ານີ້: YYYY-MM-DD, HH:MM:SS ຫຼື YYYY-MM-DD HH:MM:SS.

### ໄວຍາກອນ:

dict.ImportFromJson(inputstr: str, overwrite: bool = False): bool

### ພາຣາມິເຕີ:

inputstr: ຂໍ້ຄວາມທີ່ຈະນຳເຂົ້າ.

overwrite: ເມື່ອເປັນ True, ລາຍການທີ່ມີຊື່ດຽວກັນອາດມີຢູ່ໃນດິກຊັນນາຣີ ແລະ ຄ່າຂອງພວກມັນຈະຖືກຂຽນທັບ. ເມື່ອເປັນ False (ຄ່າເລີ່ມຕົ້ນ), ຄີທີ່ຊ້ຳກັນຈະເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດ. ໃຫ້ລະວັງວ່າຄີຂອງດິກຊັນນາຣີບໍ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່, ໃນຂະນະທີ່ຊື່ໃນຂໍ້ຄວາມ JSON ແມ່ນແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່.

### ຕົວຢ່າງ:

        Dim s As String
        s = "{'firstName': 'John','lastName': 'Smith','isAlive': true,'age': 66, 'birth':  '1954-09-28 20:15:00'" _
            & ",'address': {'streetAddress': '21 2nd Street','city': 'New York','state': 'NY','postalCode': '10021-3100'}" _
            & ",'phoneNumbers': [{'type': 'home','number': '212 555-1234'},{'type': 'office','number': '646 555-4567'}]" _
            & ",'children': ['Q','M','G','T'],'spouse': null}"
        s = Replace(s, "'", """")
        myDict.ImportFromJson(s, OverWrite := True)
        '(ດິກຊັນນາຣີຍ່ອຍ) "address" ແລະ "phoneNumbers" (0) ແລະ (1) ຈະຖືກນຳເຂົ້າເປັນຄ່າຫວ່າງ (Empty).

## ImportFromPropertyValues

ແຊກເນື້ອໃນຈາກອາເຣຂອງວັດຖຸ PropertyValue ເຂົ້າໃນດິກຊັນນາຣີປັດຈຸບັນ. ຊື່ (Names) ຂອງ PropertyValue ຈະຖືກໃຊ້ເປັນຄີ (Keys) ໃນດິກຊັນນາຣີ, ສ່ວນຄ່າ (Values) ຈະບັນຈຸຄ່າທີ່ກົງກັນ. ສົ່ງຄືນ True ຖ້າສຳເລັດ.

### ໄວຍາກອນ:

dict.ImportFromPropertyValues(propertyvalues: obj[0..*], overwrite: bool = False): bool

### ພາຣາມິເຕີ:

propertyvalues: ອາເຣໜຶ່ງມິຕິ (ເລີ່ມຕົ້ນທີ່ສູນ) ທີ່ບັນຈຸວັດຖຸ com.sun.star.beans.PropertyValue. ພາຣາມິເຕີນີ້ອາດເປັນວັດຖຸ PropertyValue ດ່ຽວໆທີ່ບໍ່ໄດ້ຢູ່ໃນອາເຣກໍໄດ້.

overwrite: ເມື່ອເປັນ True, ລາຍການທີ່ມີຊື່ດຽວກັນອາດມີຢູ່ໃນດິກຊັນນາຣີ ແລະ ຄ່າຂອງພວກມັນຈະຖືກຂຽນທັບ. ເມື່ອເປັນ False (ຄ່າເລີ່ມຕົ້ນ), ຄີທີ່ຊ້ຳກັນຈະເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດ. ໝາຍເຫດວ່າຄີຂອງດິກຊັນນາຣີບໍ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່ໃນ Basic, ໃນຂະນະທີ່ຊື່ໃນຊຸດຂອງ Property values ແລະ ໃນ dictionary ຂອງ Python ແມ່ນແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່.

### ຕົວຢ່າງ:

ຕົວຢ່າງລຸ່ມນີ້ຈະສ້າງອາເຣທີ່ມີວັດຖຸ PropertyValue ສອງອັນກ່ອນ, ແລ້ວຈຶ່ງແປງມັນໃຫ້ເປັນດິກຊັນນາຣີ.

##### ໃນ Basic

        Dim vProp As New com.sun.star.beans.PropertyValue
        Dim arrProp : arrProp = Array()
        vProp.Name = "Color"
        vProp.Value = "Blue"
        arrProp = SF_Array.Append(arrProp, vProp)
        vProp.Name = "Date"
        vProp.Value = CDateToUnoDateTime(Now)
        arrProp = SF_Array.Append(arrProp, vProp)
        myDict = CreateScriptService("Dictionary")
        myDict.ImportFromPropertyValues(arrProp, Overwrite := True)
        Dim keys : keys = myDict.Keys
        For Each k In keys
            MsgBox k & " - " & myDict.Item(k)
        Next k

##### ໃນ Python

        from scriptforge import CreateScriptService
        from datetime import datetime
        import uno
        bas = CreateScriptService("Basic")
        arrProp = list()
        vProp = uno.createUnoStruct("com.sun.star.beans.PropertyValue")
        vProp.Name = "Color"
        vProp.Value = "Blue"
        arrProp.append(vProp)
        vProp = uno.createUnoStruct("com.sun.star.beans.PropertyValue")
        vProp.Name = "Date"
        vProp.Value = bas.CDateToUnoDateTime(datetime.now())
        arrProp.append(vProp)
        myDict = CreateScriptService("Dictionary")
        myDict.ImportFromPropertyValues(arrProp, overwrite=True)
        for k in myDict.keys():
            bas.MsgBox("{} - {}".format(k, myDict[k]))

## Item

ດຶງຂໍ້ມູນລາຍການທີ່ມີຢູ່ໃນດິກຊັນນາຣີຕາມຄີຂອງມັນ. ສົ່ງຄືນຄ່າຂອງລາຍການຖ້າສຳເລັດ, ບໍ່ດັ່ງນັ້ນຈະສົ່ງຄືນ Empty.

### ໄວຍາກອນ:

dict.Item(key: str): any

### ພາຣາມິເຕີ:

key: ຖ້າບໍ່ມີຄີນີ້ຢູ່, ຈະສົ່ງຄືນຄ່າ Empty.

### ຕົວຢ່າງ:

ຕົວຢ່າງຕໍ່ໄປນີ້ຈະວົນຊ້ຳຜ່ານຄີທັງໝົດໃນດິກຊັນນາຣີ ແລະ ໃຊ້ວິທີການ Item ເພື່ອເຂົ້າເຖິງຄ່າຂອງພວກມັນ.

        Dim myDict as Variant, k as Variant, allKeys as Variant
        myDict = CreateScriptService("Dictionary")
        myDict.Add("key1", 100)
        myDict.Add("key2", 200)
        myDict.Add("key3", 300)
        allKeys = myDict.Keys
        For Each k in allKeys
           MsgBox(myDict.Item(k))
        Next k

## Remove

ລຶບລາຍການທີ່ມີຢູ່ໃນດິກຊັນນາຣີຕາມຄີຂອງມັນ. ສົ່ງຄືນ True ຖ້າສຳເລັດ.

### ໄວຍາກອນ:

dict.Remove(key: str): bool

### ພາຣາມິເຕີ:

key: ຕ້ອງມີຢູ່ໃນດິກຊັນນາຣີ, ບໍ່ດັ່ງນັ້ນຈະເກີດຂໍ້ຜິດພາດ UNKNOWNKEYERROR.

### ຕົວຢ່າງ:

        myDict.Add("key1", 100)
        myDict.Add("key2", 200)
        myDict.Add("key3", 300)
        MsgBox(myDict.Count) ' 3
        myDict.Remove("key2")
        MsgBox(myDict.Count) ' 2

## RemoveAll

ລຶບລາຍການທັງໝົດອອກຈາກດິກຊັນນາຣີ. ສົ່ງຄືນ True ຖ້າສຳເລັດ.

### ໄວຍາກອນ:

dict.RemoveAll(): bool

### ຕົວຢ່າງ:

        myDict.Add("key1", 100)
        myDict.Add("key2", 200)
        myDict.Add("key3", 300)
        MsgBox(myDict.Count) ' 3
        myDict.RemoveAll()
        MsgBox(myDict.Count) ' 0

## ReplaceItem

ປ່ຽນແທນຄ່າຂອງລາຍການທີ່ມີຢູ່ຕາມຄີຂອງມັນ. ສົ່ງຄືນ True ຖ້າສຳເລັດ.

### ໄວຍາກອນ:

dict.ReplaceItem(key: str, value: any): bool

### ພາຣາມິເຕີ:

key: ຄ່າຂໍ້ຄວາມທີ່ແທນຄີທີ່ຈະຖືກປ່ຽນແທນຄ່າ. ຖ້າຄີບໍ່ມີຢູ່ໃນດິກຊັນນາຣີ, ຈະເກີດຂໍ້ຜິດພາດ UNKNOWNKEYERROR.

value: ຄ່າໃໝ່ຂອງລາຍການທີ່ອ້າງອີງດ້ວຍພາຣາມິເຕີ key.

### ຕົວຢ່າງ:

        myDict.Add("a", 1)
        MsgBox(myDict.Item("a")) ' 1
        myDict.ReplaceItem("a", 100)
        MsgBox(myDict.Item("a")) ' 100

## ReplaceKey

ປ່ຽນແທນຄີທີ່ມີຢູ່ແລ້ວໃນດິກຊັນນາຣີດ້ວຍຄີໃໝ່. ຄ່າຂອງລາຍການຈະບໍ່ຖືກປ່ຽນແປງ. ສົ່ງຄືນ True ຖ້າສຳເລັດ.

### ໄວຍາກອນ:

dict.ReplaceKey(key: str, value: str): bool

### ພາຣາມິເຕີ:

key: ຄ່າຂໍ້ຄວາມທີ່ແທນຄີທີ່ຈະຖືກປ່ຽນແທນ. ຖ້າຄີບໍ່ມີຢູ່ໃນດິກຊັນນາຣີ, ຈະເກີດຂໍ້ຜິດພາດ UNKNOWNKEYERROR.

value: ຄ່າຂໍ້ຄວາມສຳລັບຄີໃໝ່. ຖ້າຄີໃໝ່ມີຢູ່ໃນດິກຊັນນາຣີແລ້ວ, ຈະເກີດຂໍ້ຜິດພາດ DUPLICATEKEYERROR.

### ຕົວຢ່າງ:

        myDict.Add("oldKey", 100)
        MsgBox(myDict.Item("oldKey")) ' 100
        myDict.ReplaceKey("oldKey", "newKey")
        MsgBox(myDict.Item("newKey")) ' 100

ຣູທີນ ຫຼື ຕົວລະບຸ Basic ຂອງ ScriptForge ທັງໝົດທີ່ຂຶ້ນຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ "_" ແມ່ນສະຫງວນໄວ້ສຳລັບໃຊ້ພາຍໃນ. ພວກມັນບໍ່ໄດ້ມີໄວ້ໃຫ້ໃຊ້ໃນມາໂຄຣ Basic ຫຼື ສະຄຣິບ Python.

ຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງ

ການບໍລິການ ScriptForge.Array

ອັອບເຈັກຄໍເລັກຊັນ

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!