ບໍລິການ ScriptForge.String (SF_String)

ເນື້ອໃນ

# ບໍລິການ ScriptForge.String

ບໍລິການ String ໃຫ້ການລວບລວມເມທອດສຳລັບການປະມວນຜົນສະຕຣິງ. ເມທອດເຫຼົ່ານີ້ສາມາດໃຊ້ເພື່ອ:

- ກວດສອບຄວາມຖືກຕ້ອງຂອງເນື້ອໃນສະຕຣິງ

- ຈັດຮູບແບບສະຕຣິງໂດຍການຕັດຊ່ອງວ່າງ (trimming), ການຈັດແນວ (justifying) ຫຼື ການຂຶ້ນແຖວໃໝ່ (wrapping)

- ໃຊ້ regular expressions ເພື່ອຄົ້ນຫາ ແລະ ແທນທີ່ຂໍ້ຄວາມຍ່ອຍ

- ນຳໃຊ້ hash algorithms ກັບສະຕຣິງ ແລະ ອື່ນໆ.

## ຄຳນິຍາມ

### ການຂຶ້ນແຖວໃໝ່ (Line breaks)

ບໍລິການ String ຮູ້ຈັກການຂຶ້ນແຖວໃໝ່ດັ່ງຕໍ່ໄປນີ້:

ຊື່ສັນຍະລັກ | ລະຫັດ ASCII
--- | ---
Line feed Vertical tab Carriage return Carriage return + Line feed File separator Group separator Record separator Next line Line separator Paragraph separator | 10 12 13 13 + 10 28 29 30 133 8232 8233

### ຊ່ອງວ່າງ (Whitespaces)

ບໍລິການ String ຮູ້ຈັກຊ່ອງວ່າງດັ່ງຕໍ່ໄປນີ້:

ຊື່ສັນຍະລັກ | ລະຫັດ ASCII
--- | ---
Space Horizontal tab Line feed Vertical tab Form feed Carriage return Next line No-break space Line separator Paragraph separator | 32 9 10 11 12 13 133 160 8232 8233

### ລຳດັບການຫຼົບຫຼີກ (Escape sequences)

ລຸ່ມນີ້ແມ່ນລາຍການລຳດັບການຫຼົບຫຼີກທີ່ສາມາດໃຊ້ໃນສະຕຣິງໄດ້.

ລຳດັບການຫຼົບຫຼີກ | ຊື່ສັນຍະລັກ | ລະຫັດ ASCII
--- | --- | ---
\n \r \t | Line feed Carriage return Horizontal tab | 10 13 9

ເພື່ອໃຫ້ລຳດັບການຫຼົບຫຼີກ "\n" ຖືກຕີຄວາມໝາຍເປັນສະຕຣິງປົກກະຕິ, ໃຫ້ໃຊ້ "\\n" ແທນ "\" & Chr(10).

### ຕົວອັກສອນທີ່ບໍ່ສາມາດພິມໄດ້:

ຕົວອັກສອນທີ່ກຳນົດໃນ Unicode Character Database ເປັນ “Other” ຫຼື “Separator” ແມ່ນຖືກພິຈາລະນາເປັນຕົວອັກສອນທີ່ບໍ່ສາມາດພິມໄດ້.

ຕົວອັກສອນຄວບຄຸມ (ລະຫັດ ASCII <= 0x1F) ກໍຖືກພິຈາລະນາເປັນຕົວອັກສອນທີ່ບໍ່ສາມາດພິມໄດ້ເຊັ່ນກັນ.

### ເຄື່ອງໝາຍຄຳເວົ້າພາຍໃນສະຕຣິງ:

ເພື່ອເພີ່ມເຄື່ອງໝາຍຄຳເວົ້າໃນສະຕຣິງ ໃຫ້ໃຊ້ \' (ເຄື່ອງໝາຍຄຳເວົ້າດ່ຽວ) ຫຼື \" (ເຄື່ອງໝາຍຄຳເວົ້າຄູ່). ຕົວຢ່າງ:

- ສະຕຣິງ [str\'i\'ng] ຈະຖືກຕີຄວາມໝາຍເປັນ [str'i'ng]

- ສະຕຣິງ [str\"i\"ng] ຈະຖືກຕີຄວາມໝາຍເປັນ [str"i"ng]

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

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ ScriptForge.String, ໄລບຣາຣີ ScriptForge ຈະຕ້ອງຖືກໂຫຼດໂດຍໃຊ້:

##### ໃນ Basic

          GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

ການໂຫຼດໄລບຣາຣີຈະສ້າງອັອບເຈັກ SF_String ທີ່ສາມາດໃຊ້ເພື່ອເອີ້ນເມທອດຕ່າງໆໃນບໍລິການ String.

ສ່ວນຂອງໂຄ້ດຕໍ່ໄປນີ້ສະແດງສາມວິທີໃນການເອີ້ນເມທອດຈາກບໍລິການ String (ໃຊ້ເມທອດ Capitalize ເປັນຕົວຢ່າງ):

        Dim s as String : s = "abc def"
        s = SF_String.Capitalize(s) ' Abc Def

        Dim s as String : s = "abc def"
        Dim svc : svc = SF_String
        s = svc.Capitalize(s) ' Abc Def

        Dim s as String : s = "abc def"
        Dim svc : svc = CreateScriptService("String")
        s = svc.Capitalize(s) ' Abc Def

##### ໃນ Python

ສ່ວນຂອງໂຄ້ດລຸ່ມນີ້ສະແດງວິທີການເອີ້ນເມທອດຈາກບໍລິການ String ໃນສະຄຣິບ Python. ໃຊ້ເມທອດ IsIPv4 ເປັນຕົວຢ່າງ.

        from scriptforge import CreateScriptService
        svc = CreateScriptService("String")
        ip_address = '192.168.0.14'
        svc.IsIPv4(ip_address) # True

## ຄຸນສົມບັດ

ອັອບເຈັກ SF_String ໃຫ້ຄຸນສົມບັດຕໍ່ໄປນີ້ສຳລັບສະຄຣິບ Basic:

ຊື່ | ອ່ານຢ່າງດຽວ | ຄຳອະທິບາຍ
--- | --- | ---
sfCR | ແມ່ນ | Carriage return: Chr(13)
sfCRLF | ແມ່ນ | Carriage return + Linefeed: Chr(13) & Chr(10)
sfLF | ແມ່ນ | Linefeed: Chr(10)
sfNEWLINE | ແມ່ນ | Carriage return + Linefeed, ເຊິ່ງອາດເປັນ 1) Chr(13) & Chr(10) ຫຼື 2) Linefeed: Chr(10) ຂຶ້ນຢູ່ກັບລະບົບປະຕິບັດການ.
sfTAB | ແມ່ນ | Horizontal tabulation (ການແທັບລວງນອນ): Chr(9)

ທ່ານສາມາດໃຊ້ຄຸນສົມບັດຂ້າງເທິງເພື່ອລະບຸ ຫຼື ແຊກຕົວອັກສອນທີ່ກ່ຽວຂ້ອງພາຍໃນສະຕຣິງ. ຕົວຢ່າງ: ສາມາດໃຊ້ SF_String.sfLF ແທນ Linefeed ໄດ້.

ລາຍການເມທອດໃນບໍລິການ String
Capitalize Count EndsWith Escape ExpandTabs FilterNotPrintable FindRegex HashStr HtmlEncode IsADate IsAlpha IsAlphaNum IsAscii IsDigit IsEmail | IsFileName IsHexDigit IsIBAN IsIPv4 IsLike IsLower IsPrintable IsRegex IsSheetName IsTitle IsUpper IsUrl IsWhitespace JustifyCenter JustifyLeft | JustifyRight Quote ReplaceChar ReplaceRegex ReplaceStr Represent Reverse SplitLines SplitNotQuoted StartsWith TrimExt Unescape Unquote Wrap

ອາຄິວເມນທຳອິດຂອງເມທອດສ່ວນໃຫຍ່ແມ່ນສະຕຣິງທີ່ຈະພິຈາລະນາ. ມັນຈະຖືກສົ່ງຜ່ານດ້ວຍການອ້າງອີງ (passed by reference) ແລະ ບໍ່ມີການປ່ຽນແປງຄ່າເດີມ. ເມທອດຕ່າງໆ ເຊັ່ນ Capitalize, Escape, ແລະ ອື່ນໆ ຈະສົ່ງຄືນສະຕຣິງໃໝ່ຫຼັງຈາກການປະມວນຜົນ.

ເນື່ອງຈາກ Python ມີການຮອງຮັບສະຕຣິງໃນຕົວທີ່ຄົບຖ້ວນຢູ່ແລ້ວ, ເມທອດສ່ວນໃຫຍ່ໃນບໍລິການ String ຈຶ່ງມີໃຫ້ໃຊ້ສະເພາະໃນສະຄຣິບ Basic ເທົ່ານັ້ນ. ເມທອດທີ່ມີໃຫ້ໃຊ້ທັງໃນ Basic ແລະ Python ແມ່ນ: HashStr, IsADate, IsEmail, IsFileName, IsIBAN, IsIPv4, IsLike, IsSheetName, IsUrl, SplitNotQuoted ແລະ Wrap.

## Capitalize

ປ່ຽນຕົວອັກສອນທຳອິດຂອງແຕ່ລະຄຳໃນສະຕຣິງໃຫ້ເປັນຕົວພິມໃຫຍ່.

### ໄວຍາກອນ:

svc.Capitalize(inputstr: str): str

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

inputstr: ສະຕຣິງທີ່ຈະປ່ຽນເປັນຕົວພິມໃຫຍ່.

### ຕົວຢ່າງ:

        Dim sName as String : sName = "john smith"
        Dim sCapitalizedName as String
        sCapitalizedName = SF_String.Capitalize(sName)
        MsgBox sCapitalizedName 'John Smith

## Count

ນັບຈຳນວນຄັ້ງທີ່ພົບຂໍ້ຄວາມຍ່ອຍ ຫຼື regular expression ພາຍໃນສະຕຣິງ.

### ໄວຍາກອນ:

svc.Count(inputstr: str, substring: str, [isregex: bool], [casesensitive: bool]): int

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

inputstr: ສະຕຣິງຂາເຂົ້າທີ່ຈະກວດສອບ

substring: ຂໍ້ຄວາມຍ່ອຍ ຫຼື regular expression ທີ່ຈະໃຊ້ໃນການຄົ້ນຫາ

isregex: ໃຫ້ໃຊ້ True ຖ້າຂໍ້ຄວາມຍ່ອຍເປັນ regular expression (ຄ່າເລີ່ມຕົ້ນ = False)

casesensitive: ການຄົ້ນຫາສາມາດກຳນົດໃຫ້ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

        'ນັບຈຳນວນຄັ້ງທີ່ພົບຂໍ້ຄວາມຍ່ອຍ "or" ພາຍໃນສະຕຣິງ (ສົ່ງຄືນ 2)
        MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "or", CaseSensitive := False)
        'ນັບຈຳນວນຄຳທີ່ມີແຕ່ຕົວພິມນ້ອຍ (ສົ່ງຄືນ 7)
        MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", IsRegex := True, CaseSensitive := True)

ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບ regular expressions, ໃຫ້ເບິ່ງເອກະສານຂອງ Python ໃນ Regular Expression Operations.

## EndsWith

ສົ່ງຄືນ True ຖ້າສະຕຣິງລົງທ້າຍດ້ວຍຂໍ້ຄວາມຍ່ອຍທີ່ລະບຸ.

ຟັງຊັນຈະສົ່ງຄືນ False ເມື່ອສະຕຣິງ ຫຼື ຂໍ້ຄວາມຍ່ອຍມີຄວາມຍາວເທົ່າກັບ 0 ຫຼື ເມື່ອຂໍ້ຄວາມຍ່ອຍຍາວກວ່າສະຕຣິງ.

### ໄວຍາກອນ:

svc.EndsWith(inputstr: str, substring: str, [casesensitive: bool]): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ.

substring: ຂໍ້ຄວາມຍ່ອຍທີ່ຈະຄົ້ນຫາໃນຕອນທ້າຍຂອງ inputstr.

casesensitive: ການຄົ້ນຫາສາມາດກຳນົດໃຫ້ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

        'ສົ່ງຄືນ True ເພາະເມທອດຖືກເອີ້ນໃຊ້ດ້ວຍຄ່າເລີ່ມຕົ້ນ CaseSensitive = False
        MsgBox SF_String.EndsWith("abcdefg", "EFG")
        'ສົ່ງຄືນ False ເນື່ອງຈາກພະລາມິເຕີ CaseSensitive
        MsgBox SF_String.EndsWith("abcdefg", "EFG", CaseSensitive := True)

## Escape

ແປງການຂຶ້ນແຖວໃໝ່ ແລະ ການແທັບທີ່ມີໃນສະຕຣິງໃຫ້ເປັນລຳດັບການຫຼົບຫຼີກທີ່ທຽບເທົ່າ (\\, \n, \r, \t).

### ໄວຍາກອນ:

svc.Escape(inputstr: str): str

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

inputstr: ສະຕຣິງທີ່ຈະແປງ.

### ຕົວຢ່າງ:

        'ສົ່ງຄືນສະຕຣິງ "abc\n\tdef\\n"
        MsgBox SF_String.Escape("abc" & Chr(10) & Chr(9) & "def\n")

## ExpandTabs

ແທນທີ່ຕົວອັກສອນ Tab Chr(9) ດ້ວຍຕົວອັກສອນຊ່ອງວ່າງ ເພື່ອຈຳລອງພຶດຕິກຳຂອງ tab stops.

ຖ້າພົບການຂຶ້ນແຖວໃໝ່, ແຖວໃໝ່ຈະເລີ່ມຕົ້ນ ແລະ ຕົວນັບຕົວອັກສອນຈະຖືກຕັ້ງຄ່າໃໝ່.

### ໄວຍາກອນ:

svc.ExpandTabs(inputstr: str, [tabsize: int]): str

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

inputstr: ສະຕຣິງທີ່ຈະຂະຫຍາຍ

tabsize: ພະລາມິເຕີນີ້ໃຊ້ເພື່ອຊອກຫາ Tab stops ໂດຍໃຊ້ສູດ: TabSize + 1, 2 * TabSize + 1, ... N * TabSize + 1 (ຄ່າເລີ່ມຕົ້ນ = 8)

### ຕົວຢ່າງ:

        Dim myText as String
        myText = "100" & SF_String.sfTAB & "200" & SF_String.sfTAB & "300" & SF_String.sfNEWLINE & _
                 "X"  & SF_String.sfTAB & "Y" & SF_String.sfTAB & "Z"
        MsgBox SF_String.ExpandTabs(myText)
        '100     200     300
        'X       Y       Z

## FilterNotPrintable

ແທນທີ່ຕົວອັກສອນທັງໝົດທີ່ບໍ່ສາມາດພິມໄດ້ໃນສະຕຣິງດ້ວຍຕົວອັກສອນທີ່ກຳນົດໃຫ້.

### ໄວຍາກອນ:

svc.FilterNotPrintable(inputstr: str, [replacedby: str]): str

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

inputstr: ສະຕຣິງທີ່ຈະຄົ້ນຫາ

replacedby: ຕົວອັກສອນສູນ, ຫນຶ່ງ ຫຼື ຫຼາຍຕົວທີ່ຈະມາແທນທີ່ຕົວອັກສອນທີ່ບໍ່ສາມາດພິມໄດ້ທັງໝົດໃນ inputstr (ຄ່າເລີ່ມຕົ້ນ = "")

### ຕົວຢ່າງ:

        Dim LF : LF = Chr(10)
        Dim myText as String
        myText = "àén ΣlPµ" & LF & " Русский" & "\n"
        MsgBox SF_String.FilterNotPrintable(myText)
        ' "àén ΣlPµ Русский\n"

## FindRegex

ຄົ້ນຫາຂໍ້ຄວາມຍ່ອຍໃນສະຕຣິງທີ່ກົງກັບ regular expression ທີ່ກຳນົດໃຫ້.

### ໄວຍາກອນ:

svc.FindRegex(inputstr: str, regex: str, [start: int], [casesensitive: bool], [forward: bool]): str

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

inputstr: ສະຕຣິງທີ່ຈະຄົ້ນຫາ

regex: regular expression ທີ່ຈະໃຊ້

start: ຕຳແໜ່ງໃນສະຕຣິງທີ່ຈະເລີ່ມການຄົ້ນຫາ. ພະລາມິເຕີນີ້ຖືກສົ່ງຜ່ານດ້ວຍການອ້າງອີງ, ດັ່ງນັ້ນຫຼັງຈາກປະມວນຜົນແລ້ວ ຄ່າຂອງ start ຈະຊີ້ໄປຫາຕົວອັກສອນທຳອິດຂອງຂໍ້ຄວາມຍ່ອຍທີ່ພົບ. ຖ້າບໍ່ພົບຂໍ້ຄວາມຍ່ອຍທີ່ກົງກັນ, start ຈະຖືກຕັ້ງເປັນ 0.

casesensitive: ການຄົ້ນຫາສາມາດກຳນົດໃຫ້ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

forward: ກຳນົດທິດທາງຂອງການຄົ້ນຫາ. ຖ້າເປັນ True, ການຄົ້ນຫາຈະໄປທາງໜ້າ. ຖ້າເປັນ False, ການຄົ້ນຫາຈະຖອຍຫຼັງ (ຄ່າເລີ່ມຕົ້ນ = True)

ໃນການເຮັດວຽກຮອບທຳອິດ, ຖ້າ forward = True, ຄ່າ start ຄວນເທົ່າກັບ 1, ໃນຂະນະທີ່ຖ້າ forward = False ຄ່າ start ຄວນເທົ່າກັບ Len(inputstr)

### ຕົວຢ່າງ:

        Dim lStart As Long : lStart = 1
        Dim result as String
        result = SF_String.FindRegex("abCcdefghHij", "C.*H", lStart, CaseSensitive := True)
        MsgBox lStart & ": " & result
        '3: CcdefghH

ໃນຕົວຢ່າງຂ້າງເທິງ, ຄ່າໃໝ່ຂອງ lStart ສາມາດໃຊ້ເພື່ອຄົ້ນຫາໃນສະຕຣິງເດີມຕໍ່ໄປໄດ້ ໂດຍການຕັ້ງພະລາມິເຕີ Start ເປັນ lStart + Len(result) ໃນຮອບຖັດໄປ.

## HashStr

ຟັງຊັນ Hash ຖືກນຳໃຊ້ໃນອັນກໍຣິທຶມການເຂົ້າລະຫັດລັບ, ລາຍເຊັນດີຈີຕອນ, ລະຫັດຢືນຢັນຂໍ້ຄວາມ, ການກວດສອບການປ່ຽນແປງຂໍ້ມູນ, ລາຍນິ້ວມືດີຈີຕອນ, ເຊັກຊຳ (checksums), ຕາຕະລາງ hash, ການເກັບຮັກສາລະຫັດຜ່ານ ແລະ ອື່ນໆອີກຫຼາຍຢ່າງ.

ເມທອດ HashStr ສົ່ງຄືນຜົນລັບຂອງຟັງຊັນ hash ທີ່ໃຊ້ກັບສະຕຣິງທີ່ໃຫ້ມາໂດຍໃຊ້ອັນກໍຣິທຶມທີ່ລະບຸ, ໃນຮູບແບບສະຕຣິງຂອງເລກຖານສິບຫົກຕົວພິມນ້ອຍ.

ອັນກໍຣິທຶມ hash ທີ່ຮອງຮັບແມ່ນ: MD5, SHA1, SHA224, SHA256, SHA384 ແລະ SHA512.

### ໄວຍາກອນ:

svc.HashStr(inputstr: str, algorithm: str): str

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

inputstr: ສະຕຣິງທີ່ຈະເຮັດ hash. ສົມມຸດວ່າມັນຖືກເຂົ້າລະຫັດເປັນ UTF-8. ອັນກໍຣິທຶມ hashing ຈະພິຈາລະນາສະຕຣິງເປັນສະຕຣີມຂອງໄບຕ໌ (stream of bytes).

algorithm: ໜຶ່ງໃນອັນກໍຣິທຶມທີ່ຮອງຮັບຕາມລາຍການຂ້າງເທິງ, ໂດຍສົ່ງເປັນສະຕຣິງ.

### ຕົວຢ່າງ:

##### ໃນ Basic

        MsgBox SF_String.HashStr("œ∑¡™£¢∞§¶•ªº–≠œ∑´®†¥¨ˆøπ‘åß∂ƒ©˙∆˚¬", "MD5")
        ' c740ccc2e201df4b2e2b4aa086f35d8a

##### ໃນ Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        a_string = "œ∑¡™£¢∞§¶•ªº–≠œ∑´®†¥¨ˆøπ‘åß∂ƒ©˙∆˚¬"
        hash_value = svc.HashStr(a_string, "MD5")
        bas.MsgBox(hash_value)
        # c740ccc2e201df4b2e2b4aa086f35d8a

## HtmlEncode

ເຂົ້າລະຫັດສະຕຣິງຂາເຂົ້າໃຫ້ເປັນລະຫັດຕົວອັກສອນ HTML, ໂດຍແທັນທີ່ຕົວອັກສອນພິເສດດ້ວຍຕົວອັກສອນທີ່ເລີ່ມດ້ວຍ & ທີ່ກ່ຽວຂ້ອງ.

ຕົວຢ່າງ: ຕົວອັກສອນ é ຈະຖືກແທນທີ່ດ້ວຍ &eacute; ຫຼື ລະຫັດຕົວເລກ HTML ທີ່ທຽບເທົ່າ.

### ໄວຍາກອນ:

svc.HtmlEncode(inputstr: str): str

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

inputstr: ສະຕຣິງທີ່ຈະເຂົ້າລະຫັດ.

### ຕົວຢ່າງ:

        MsgBox SF_String.HtmlEncode("<a href=""https://a.b.com"">From α to ω</a>")
        ' "&lt;a href=&quot;https://a.b.com&quot;&gt;From &#945; to &#969;&lt;/a&gt;"

## IsADate

ສົ່ງຄືນ True ຖ້າສະຕຣິງຂາເຂົ້າເປັນວັນທີທີ່ຖືກຕ້ອງຕາມຮູບແບບວັນທີທີ່ລະບຸ.

### ໄວຍາກອນ:

svc.IsADate(inputstr: str, [dateformat: str]): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False

dateformat: ຮູບແບບວັນທີ, ເປັນສະຕຣິງ. ສາມາດເປັນ "YYYY-MM-DD" (ຄ່າເລີ່ມຕົ້ນ), "DD-MM-YYYY" ຫຼື "MM-DD-YYYY"

ເຄື່ອງໝາຍຂີດ (-) ອາດຈະຖືກແທນທີ່ດ້ວຍຈຸດ (.), ເຄື່ອງໝາຍທັບ (/) ຫຼື ຊ່ອງວ່າງ.

ຖ້າຮູບແບບບໍ່ຖືກຕ້ອງ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

##### ໃນ Basic

        MsgBox SF_String.IsADate("2020-12-31", "YYYY-MM-DD") ' True

ເມທອດນີ້ຈະກວດສອບພຽງແຕ່ຮູບແບບຂອງສະຕຣິງຂາເຂົ້າ ໂດຍບໍ່ໄດ້ກວດສອບລາຍລະອຽດສະເພາະຂອງປະຕິທິນ. ດັ່ງນັ້ນ ມັນຈຶ່ງບໍ່ໄດ້ກວດສອບປີອະທິກະສຸຣະທິນ ຫຼື ເດືອນທີ່ມີ 30 ຫຼື 31 ວັນ. ສຳລັບການກວດສອບນັ້ນ, ໃຫ້ເບິ່ງທີ່ IsDate built-in function.

ຕົວຢ່າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນຄວາມແຕກຕ່າງລະຫວ່າງເມທອດ IsADate (ScriptForge) ແລະ ຟັງຊັນ IsDate (built-in).

        Dim myDate as String : myDate = "2020-02-30"
        MsgBox SF_String.IsADate(myDate, "YYYY-MM-DD") 'True
        MsgBox IsDate(myDate) ' False

##### ໃນ Python

        svc = CreateScriptService("String")
        s_date = "2020-12-31"
        result = svc.IsADate(s_date) # True

## IsAlpha

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທັງໝົດໃນສະຕຣິງເປັນຕົວອັກສອນພາສາ.

ຕົວອັກສອນພາສາແມ່ນຕົວອັກສອນທີ່ກຳນົດໃນ Unicode Character Database ເປັນ Letter.

### ໄວຍາກອນ:

svc.IsAlpha(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

        MsgBox SF_String.IsAlpha("àénΣlPµ") ' True
        MsgBox SF_String.IsAlpha("myVar3") ' False

## IsAlphaNum

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທັງໝົດໃນສະຕຣິງເປັນຕົວອັກສອນພາສາ, ຕົວເລກ ຫຼື "_" (underscore). ຕົວອັກສອນທຳອິດຈະຕ້ອງບໍ່ແມ່ນຕົວເລກ.

### ໄວຍາກອນ:

svc.IsAlphaNum(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

        MsgBox SF_String.IsAlphaNum("_ABC_123456_abcàénΣlPµ") ' True
        MsgBox SF_String.IsAlphaNum("123ABC") ' False

## IsAscii

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທັງໝົດໃນສະຕຣິງເປັນຕົວອັກສອນ ASCII.

### ໄວຍາກອນ:

svc.IsAscii(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

        MsgBox SF_String.IsAscii("a%?,25") ' True
        MsgBox SF_String.IsAscii("abcàénΣlPµ") ' False

## IsDigit

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທັງໝົດໃນສະຕຣິງເປັນຕົວເລກ.

### ໄວຍາກອນ:

svc.IsDigit(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

        MsgBox SF_String.IsDigit("123456") ' True
        MsgBox SF_String.IsDigit("_12a") ' False

## IsEmail

ສົ່ງຄືນ True ຖ້າສະຕຣິງເປັນທີ່ຢູ່ອີເມລທີ່ຖືກຕ້ອງ.

### ໄວຍາກອນ:

svc.IsEmail(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

##### ໃນ Basic

        MsgBox SF_String.IsEmail("first.last@something.org") ' True
        MsgBox SF_String.IsEmail("first.last@something.com.br") ' True
        MsgBox SF_String.IsEmail("first.last@something.123") ' False

##### ໃນ Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsEmail("first.last@something.org")) # True
        bas.MsgBox(svc.IsEmail("first.last@something.com.br")) # True
        bas.MsgBox(svc.IsEmail("first.last@something.123")) # False

## IsFileName

ສົ່ງຄືນ True ຖ້າສະຕຣິງເປັນຊື່ໄຟລ໌ທີ່ຖືກຕ້ອງໃນລະບົບປະຕິບັດການທີ່ລະບຸ.

### ໄວຍາກອນ:

svc.IsFileName(inputstr: str, [osname: str]): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

osname: ຊື່ລະບົບປະຕິບັດການ, ເປັນສະຕຣິງ. ສາມາດເປັນ "WINDOWS", "LINUX", "MACOSX" ຫຼື "SOLARIS".

ຄ່າເລີ່ມຕົ້ນແມ່ນລະບົບປະຕິບັດການປັດຈຸບັນທີ່ສະຄຣິບກຳລັງເຮັດວຽກຢູ່.

### ຕົວຢ່າງ:

##### ໃນ Basic

        MsgBox SF_String.IsFileName("/home/user/Documents/a file name.odt", "LINUX") ' True
        MsgBox SF_String.IsFileName("C:\home\a file name.odt", "LINUX") ' False
        MsgBox SF_String.IsFileName("C:\home\a file name.odt", "WINDOWS") ' True

##### ໃນ Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsFileName("/home/user/Documents/a file name.odt", "LINUX")) # True
        bas.MsgBox(svc.IsFileName(r"C:\home\a file name.odt", "LINUX")) # False
        bas.MsgBox(svc.IsFileName(r"C:\home\a file name.odt", "WINDOWS")) # True

## IsHexDigit

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທັງໝົດໃນສະຕຣິງເປັນເລກຖານສິບຫົກ.

### ໄວຍາກອນ:

svc.IsHexDigit(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

ຕົວເລກຖານສິບຫົກອາດຈະຂຶ້ນຕົ້ນດ້ວຍ "0x" ຫຼື "&H".

### ຕົວຢ່າງ:

        MsgBox SF_String.IsHexDigit("&H00FF") ' True
        MsgBox SF_String.IsHexDigit("08AAFF10") ' True
        MsgBox SF_String.IsHexDigit("0x18LA22") ' False

## IsIBAN

ສົ່ງຄືນ True ຖ້າສະຕຣິງເປັນເລກບັນຊີທະນາຄານສາກົນ (IBAN) ທີ່ຖືກຕ້ອງ. ການປຽບທຽບຈະບໍ່ແຍກຕົວພິມໃຫຍ່-ນ້ອຍ.

### ໄວຍາກອນ:

svc.IsIBAN(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ປະເພດຄ່າທີ່ສົ່ງກັບ:

ສົ່ງຄືນ True ຖ້າສະຕຣິງມີໝາຍເລກ IBAN ທີ່ຖືກຕ້ອງ.

### ຕົວຢ່າງ:

        ' Basic
        MsgBox SF_String.IsIBAN("BR15 0000 0000 0000 1093 2840 814 P2") ' True

        # Python
        result = svc.IsIBAN("BR15 0000 0000 0000 1093 2840 814 P2") # True

## IsIPv4

ສົ່ງຄືນ True ຖ້າສະຕຣິງເປັນທີ່ຢູ່ IP(v4) ທີ່ຖືກຕ້ອງ.

### ໄວຍາກອນ:

svc.IsIPv4(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

##### ໃນ Basic

        MsgBox SF_String.IsIPv4("192.168.1.50") ' True
        MsgBox SF_String.IsIPv4("192.168.50") ' False
        MsgBox SF_String.IsIPv4("255.255.255.256") ' False

##### ໃນ Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsIPv4("192.168.1.50")) # True
        bas.MsgBox(svc.IsIPv4("192.168.50")) # False
        bas.MsgBox(svc.IsIPv4("255.255.255.256")) # False

## IsLike

ສົ່ງຄືນ True ຖ້າສະຕຣິງຂາເຂົ້າທັງໝົດກົງກັບຮູບແບບທີ່ໃຫ້ມາເຊິ່ງມີຕົວແທນ (wildcards).

### ໄວຍາກອນ:

svc.IsLike(inputstr: str, pattern: str, [casesensitive: bool]): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

pattern: ຮູບແບບໃນລັກສະນະສະຕຣິງ. ຕົວແທນ (wildcards) ມີດັ່ງນີ້:

- "?" ແທນຕົວອັກສອນໃດໜຶ່ງພຽງຕົວດຽວ;

- "*" ແທນຕົວອັກສອນສູນຕົວ, ໜຶ່ງຕົວ ຫຼື ຫຼາຍຕົວ.

casesensitive: ການຄົ້ນຫາສາມາດກຳນົດໃຫ້ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

##### ໃນ Basic

        MsgBox SF_String.IsLike("aAbB", "?A*") ' True
        MsgBox SF_String.IsLike("C:\a\b\c\f.odb", "?:*.*") ' True
        MsgBox SF_String.IsLike("name:host", "?*@?*") ' False
        MsgBox SF_String.IsLike("@host", "?*@?*") ' False

##### ໃນ Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsLike("aAbB", "?A*")) # True
        bas.MsgBox(svc.IsLike(r"C:\a\b\c\f.odb", "?:*.*")) # True
        bas.MsgBox(svc.IsLike("name:host", "?*@?*")) # False
        bas.MsgBox(svc.IsLike("@host", "?*@?*")) # False

## IsLower

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

### ໄວຍາກອນ:

svc.IsLower(inputstr: str): bool

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

InputStr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

        MsgBox SF_String.IsLower("abc'(-xy4z") ' True
        MsgBox SF_String.IsLower("1234") ' True
        MsgBox SF_String.IsLower("abcDefg") ' False

## IsPrintable

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທັງໝົດໃນສະຕຣິງສາມາດພິມໄດ້.

### ໄວຍາກອນ:

svc.IsPrintable(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

        MsgBox SF_String.IsPrintable("àén ΣlPµ Русский") ' True
        MsgBox SF_String.IsPrintable("First line." & Chr(10) & "Second Line.") ' False

## IsRegex

ສົ່ງຄືນ True ຖ້າສະຕຣິງຂາເຂົ້າທັງໝົດກົງກັບ regular expression ທີ່ໃຫ້ມາ.

### ໄວຍາກອນ:

svc.IsRegex(inputstr: str, regex: str, [casesensitive: bool]): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

regex: regular expression. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

casesensitive: ການຄົ້ນຫາສາມາດກຳນົດໃຫ້ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

            MsgBox SF_String.IsRegex("aAbB", "[A-Za-z]+") ' True
            MsgBox SF_String.IsRegex("John;100", "[A-Za-z]+;[0-9]+") ' True
            MsgBox SF_String.IsRegex("John;100;150", "[A-Za-z]+;[0-9]+") ' False

## IsSheetName

ສົ່ງຄືນ True ຖ້າສະຕຣິງຂາເຂົ້າເປັນຊື່ຊີດ Calc ທີ່ຖືກຕ້ອງ.

### ໄວຍາກອນ:

svc.IsSheetName(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

##### ໃນ Basic

        MsgBox SF_String.IsSheetName("1àbc + ""déf""") ' True
        MsgBox SF_String.IsSheetName("[MySheet]") ' False

##### ໃນ Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsSheetName("1àbc + ""déf""")) # True
        bas.MsgBox(svc.IsSheetName("[MySheet]")) # False

ຊື່ຊີດຈະຕ້ອງບໍ່ມີຕົວອັກສອນ [ ] * ? : / \ ຫຼື ຕົວອັກສອນ ' (apostrophe) ເປັນຕົວອັກສອນທຳອິດ ຫຼື ຕົວອັກສອນສຸດທ້າຍ.

## IsTitle

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທຳອິດຂອງທຸກໆຄຳເປັນຕົວພິມໃຫຍ່ ແລະ ຕົວອັກສອນອື່ນໆເປັນຕົວພິມນ້ອຍ.

### ໄວຍາກອນ:

svc.IsTitle(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

        MsgBox SF_String.IsTitle("This Is The Title Of My Book") ' True
        MsgBox SF_String.IsTitle("This is the Title of my Book") ' False
        MsgBox SF_String.IsTitle("Result Number 100") ' True

## IsUpper

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທັງໝົດໃນສະຕຣິງເປັນຕົວພິມໃຫຍ່. ຕົວອັກສອນທີ່ບໍ່ແມ່ນພາສາຈະຖືກລະເວັ້ນ.

### ໄວຍາກອນ:

svc.IsUpper(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

        MsgBox SF_String.IsUpper("ABC'(-XYZ") ' True
        MsgBox SF_String.IsUpper("A Title") ' False

## IsUrl

ສົ່ງຄືນ True ຖ້າສະຕຣິງເປັນທີ່ຢູ່ URL ແບບເຕັມ (absolute URL) ທີ່ຖືກຕ້ອງ. ຮອງຮັບສະເພາະໂປຣໂຕຄໍ http, https ແລະ ftp ເທົ່ານັ້ນ.

### ໄວຍາກອນ:

svc.IsUrl(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

##### ໃນ Basic

        MsgBox SF_String.IsUrl("http://foo.bar/?q=Test%20URL-encoded%20stuff") ' True
        MsgBox SF_String.IsUrl("www.somesite.org") ' False

##### ໃນ Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsUrl("http://foo.bar/?q=Test%20URL-encoded%20stuff")) # True
        bas.MsgBox(svc.IsUrl("www.somesite.org")) # False

## IsWhitespace

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທັງໝົດໃນສະຕຣິງເປັນຊ່ອງວ່າງ.

### ໄວຍາກອນ:

svc.IsWhitespace(inputstr: str): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນ False.

### ຕົວຢ່າງ:

        MsgBox SF_String.IsWhitespace("    ") ' True
        MsgBox SF_String.IsWhitespace(" " & Chr(9) & Chr(10)) ' True
        MsgBox SF_String.IsWhitespace("") ' False

## JustifyCenter

ສົ່ງຄືນສະຕຣິງຂາເຂົ້າທີ່ຈັດໃຫ້ຢູ່ເຄິ່ງກາງ.

ຊ່ອງວ່າງທາງໜ້າ ແລະ ທາງຫຼັງຈະຖືກຕັດອອກ ແລະ ຕົວອັກສອນທີ່ເຫຼືອຈະຖືກຕື່ມໃສ່ທາງຊ້າຍ ແລະ ຂວາ ໃຫ້ຄົບຕາມຄວາມຍາວ (length) ທີ່ລະບຸ ດ້ວຍຕົວອັກສອນເຕີມ (padding).

### ໄວຍາກອນ:

svc.JustifyCenter(inputstr: str, [length: int], [padding: str]): str

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

inputstr: ສະຕຣິງທີ່ຈະຈັດໃຫ້ຢູ່ເຄິ່ງກາງ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນສະຕຣິງວ່າງ.

length: ຄວາມຍາວຂອງສະຕຣິງຜົນລັບ (ຄ່າເລີ່ມຕົ້ນ = ຄວາມຍາວຂອງສະຕຣິງຂາເຂົ້າ).

ຖ້າຄວາມຍາວທີ່ລະບຸສັ້ນກວ່າສະຕຣິງຂາເຂົ້າທີ່ຈັດເຄິ່ງກາງແລ້ວ, ສະຕຣິງທີ່ສົ່ງຄືນມາຈະຖືກຕັດອອກ.

padding: ຕົວອັກສອນດ່ຽວທີ່ຈະໃຊ້ເປັນຕົວເຕີມ (ຄ່າເລີ່ມຕົ້ນ = ຊ່ອງວ່າງ ASCII " ").

### ຕົວຢ່າງ:

        MsgBox SF_String.JustifyCenter("Title", Length := 11) ' "   Title   "
        MsgBox SF_String.JustifyCenter("    ABCDEF", Padding := "_") ' "__ABCDEF__"
        MsgBox SF_String.JustifyCenter("A Long Title", Length := 5) ' "ong T"

## JustifyLeft

ສົ່ງຄືນສະຕຣິງຂາເຂົ້າທີ່ຈັດໃຫ້ຢູ່ທາງຊ້າຍ.

ຊ່ອງວ່າງທາງໜ້າຈະຖືກຕັດອອກ ແລະ ຕົວອັກສອນທີ່ເຫຼືອຈະຖືກຕື່ມໃສ່ທາງຂວາ ໃຫ້ຄົບຕາມຄວາມຍາວ (length) ທີ່ລະບຸ ດ້ວຍຕົວອັກສອນເຕີມ (padding).

### ໄວຍາກອນ:

svc.JustifyLeft(inputstr: str, [length: int], [padding: str]): str

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

inputstr: ສະຕຣິງທີ່ຈະຈັດໃຫ້ຢູ່ທາງຊ້າຍ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນສະຕຣິງວ່າງ.

length: ຄວາມຍາວຂອງສະຕຣິງຜົນລັບ (ຄ່າເລີ່ມຕົ້ນ = ຄວາມຍາວຂອງສະຕຣິງຂາເຂົ້າ).

ຖ້າຄວາມຍາວທີ່ລະບຸສັ້ນກວ່າສະຕຣິງຂາເຂົ້າທີ່ຈັດຊ້າຍແລ້ວ, ສະຕຣິງທີ່ສົ່ງຄືນມາຈະຖືກຕັດອອກ.

padding: ຕົວອັກສອນດ່ຽວທີ່ຈະໃຊ້ເປັນຕົວເຕີມ (ຄ່າເລີ່ມຕົ້ນ = ຊ່ອງວ່າງ ASCII " ").

### ຕົວຢ່າງ:

        MsgBox SF_String.JustifyLeft("Title", Length := 10) ' "Title     "
        MsgBox SF_String.JustifyLeft("    ABCDEF", Padding := "_") ' "ABCDEF____"
        MsgBox SF_String.JustifyLeft("A Long Title", Length := 5) ' "A Lon"

## JustifyRight

ສົ່ງຄືນສະຕຣິງຂາເຂົ້າທີ່ຈັດໃຫ້ຢູ່ທາງຂວາ.

ຊ່ອງວ່າງທາງໜ້າຈະຖືກຕັດອອກ ແລະ ຕົວອັກສອນທີ່ເຫຼືອຈະຖືກຕື່ມໃສ່ທາງຊ້າຍ ໃຫ້ຄົບຕາມຄວາມຍາວ (length) ທີ່ລະບຸ ດ້ວຍຕົວອັກສອນເຕີມ (padding).

### ໄວຍາກອນ:

svc.JustifyRight(inputstr: str, [length: int], [padding: str]): str

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

inputstr: ສະຕຣິງທີ່ຈະຈັດໃຫ້ຢູ່ທາງຂວາ. ຖ້າວ່າງເປົ່າ, ເມທອດຈະສົ່ງຄືນສະຕຣິງວ່າງ.

length: ຄວາມຍາວຂອງສະຕຣິງຜົນລັບ (ຄ່າເລີ່ມຕົ້ນ = ຄວາມຍາວຂອງສະຕຣິງຂາເຂົ້າ).

ຖ້າຄວາມຍາວທີ່ລະບຸສັ້ນກວ່າສະຕຣິງຂາເຂົ້າທີ່ຈັດຂວາແລ້ວ, ສະຕຣິງທີ່ສົ່ງຄືນມາຈະຖືກຕັດອອກ.

padding: ຕົວອັກສອນດ່ຽວທີ່ຈະໃຊ້ເປັນຕົວເຕີມ (ຄ່າເລີ່ມຕົ້ນ = ຊ່ອງວ່າງ ASCII " ").

### ຕົວຢ່າງ:

        MsgBox SF_String.JustifyRight("Title", Length := 10) ' "     Title"
        MsgBox SF_String.JustifyRight("  ABCDEF  ", Padding := "_") ' "____ABCDEF"
        MsgBox SF_String.JustifyRight("A Long Title", Length := 5) ' "Title"

## Quote

ສົ່ງຄືນສະຕຣິງຂາເຂົ້າທີ່ຢູ່ພາຍໃນເຄື່ອງໝາຍຄຳເວົ້າດ່ຽວ ຫຼື ເຄື່ອງໝາຍຄຳເວົ້າຄູ່. ເຄື່ອງໝາຍຄຳເວົ້າທີ່ມີຢູ່ແລ້ວຈະບໍ່ມີການປ່ຽນແປງ, ລວມທັງເຄື່ອງໝາຍຄຳເວົ້າທາງໜ້າ ແລະ/ຫຼື ທາງຫຼັງ.

### ໄວຍາກອນ:

svc.Quote(inputstr: str, [quotechar: str]): str

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

inputstr: ສະຕຣິງທີ່ຈະໃສ່ເຄື່ອງໝາຍຄຳເວົ້າ.

quotechar: ສາມາດເປັນເຄື່ອງໝາຍຄຳເວົ້າດ່ຽວ (') ຫຼື ເຄື່ອງໝາຍຄຳເວົ້າຄູ່ (") (ຄ່າເລີ່ມຕົ້ນ).

### ຕົວຢ່າງ:

        MsgBox SF_String.Quote("Text Value")
        ' "Text Value"
        MsgBox SF_String.Quote("Book Title: ""The Arabian Nights""", "'")
        ' 'Book Title: "The Arabian Nights"'

ເມທອດນີ້ມີປະໂຫຍດໃນການກຽມຟິວ (field) ຂອງສະຕຣິງເພື່ອເກັບໄວ້ໃນໄຟລ໌ຄືກັບ csv, ເຊິ່ງຕ້ອງການໃຫ້ຄ່າຂໍ້ຄວາມຢູ່ພາຍໃນເຄື່ອງໝາຍຄຳເວົ້າດ່ຽວ ຫຼື ຄູ່.

## ReplaceChar

ແທນທີ່ຕົວອັກສອນທັງໝົດທີ່ລະບຸໃນພະລາມິເຕີ Before ດ້ວຍຕົວອັກສອນທີ່ກົງກັນທີ່ລະບຸໃນ After.

ຖ້າຄວາມຍາວຂອງ Before ຫຼາຍກວ່າຄວາມຍາວຂອງ After, ຕົວອັກສອນທີ່ເຫຼືອໃນ Before ຈະຖືກແທນທີ່ດ້ວຍຕົວອັກສອນສຸດທ້າຍໃນ After.

### ໄວຍາກອນ:

svc.ReplaceChar(inputstr: str, before: str, after: str): str

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

inputstr: ສະຕຣິງຂາເຂົ້າທີ່ຈະເຮັດການແທນທີ່.

before: ສະຕຣິງທີ່ມີຕົວອັກສອນທີ່ຈະຄົ້ນຫາໃນສະຕຣິງຂາເຂົ້າເພື່ອເຮັດການແທນທີ່.

after: ສະຕຣິງທີ່ມີຕົວອັກສອນໃໝ່ທີ່ຈະມາແທນທີ່ຕົວອັກສອນທີ່ກຳນົດໃນ before.

### ຕົວຢ່າງ:

        ' ແທນທີ່ຕົວອັກສອນທີ່ມີເຄື່ອງໝາຍກຳກັບສຽງ (accented characters)
        MsgBox SF_String.ReplaceChar("Protégez votre vie privée", "àâãçèéêëîïôöûüýÿ", "aaaceeeeiioouuyy")
        ' "Protegez votre vie privee"
        MsgBox SF_String.ReplaceChar("Protégez votre vie privée", "àâãçèéêëîïôöûüýÿ", "")
        ' "Protgez votre vie prive"
        MsgBox SF_String.ReplaceChar("àâãçèéêëîïôöûüýÿ", "àâãçèéêëîïôöûüýÿ", "aaaceeeeiioouuyy")
        ' "aaaceeeeiioouuyy"

ບໍລິການ SF_String ໃຫ້ຄ່າຄົງທີ່ສາທາລະນະທີ່ມີປະໂຫຍດສຳລັບຊຸດຕົວອັກສອນ Latin, ດັ່ງທີ່ສະແດງໃນຕົວຢ່າງລຸ່ມນີ້:

        MsgBox SF_String.ReplaceChar("Protégez votre vie privée", SF_String.CHARSWITHACCENT, SF_String.CHARSWITHOUTACCENT)
        ' "Protegez votre vie privee"

## ReplaceRegex

ແທນທີ່ທຸກໆຕຳແໜ່ງທີ່ກົງກັບ regular expression ທີ່ໃຫ້ມາດ້ວຍສະຕຣິງໃໝ່.

### ໄວຍາກອນ:

svc.ReplaceRegex(inputstr: str, regex: str, newstr: str, [casesensitive: bool]): str

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

inputstr: ສະຕຣິງຂາເຂົ້າທີ່ຈະເຮັດການແທນທີ່.

regex: regular expression ທີ່ຈະໃຊ້.

newstr: ສະຕຣິງທີ່ຈະນຳມາແທນທີ່.

casesensitive: ການຄົ້ນຫາສາມາດກຳນົດໃຫ້ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

        MsgBox SF_String.ReplaceRegex("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "[a-z]", "x", CaseSensitive := True)
        ' "Lxxxx xxxxx xxxxx xxx xxxx, xxxxxxxxxxx xxxxxxxxxx xxxx." (ຕົວພິມນ້ອຍແຕ່ລະຕົວຖືກແທນທີ່ດ້ວຍ "x")
        MsgBox SF_String.ReplaceRegex("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", "x", CaseSensitive := False)
        ' "x x x x x, x x x." (ແຕ່ລະຄຳຖືກແທນທີ່ດ້ວຍ "x")

## ReplaceStr

ແທນທີ່ບາງຕຳແໜ່ງ ຫຼື ທັງໝົດຂອງອາເຣຂອງສະຕຣິງໃນສະຕຣິງໃດໜຶ່ງ ດ້ວຍອາເຣຂອງສະຕຣິງໃໝ່.

### ໄວຍາກອນ:

svc.ReplaceStr(inputstr: str, oldstr: str, newstr: str, [occurrences: int], [casesensitive: bool]): str

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

inputstr: ສະຕຣິງຂາເຂົ້າທີ່ຈະເຮັດການແທນທີ່.

oldstr: ສະຕຣິງດ່ຽວ ຫຼື ອາເຣຂອງສະຕຣິງ. ສະຕຣິງທີ່ມີຄວາມຍາວເປັນສູນຈະຖືກລະເວັ້ນ.

newstr: ສະຕຣິງທີ່ຈະມາແທນທີ່ ຫຼື ອາເຣຂອງສະຕຣິງທີ່ຈະມາແທນທີ່.

ຖ້າ oldstr ເປັນອາເຣ, ແຕ່ລະຕຳແໜ່ງທີ່ພົບລາຍການໃດໜຶ່ງໃນ oldstr ຈະຖືກແທນທີ່ດ້ວຍ newstr.

ຖ້າ oldstr ແລະ newstr ເປັນອາເຣ, ການແທນທີ່ຈະເກີດຂຶ້ນເທື່ອລະອັນຈົນເຖິງ UBound(newstr).

ຖ້າ oldstr ມີລາຍການຫຼາຍກວ່າ newstr, ລາຍການທີ່ເຫຼືອໃນ oldstr ຈະຖືກແທນທີ່ດ້ວຍລາຍການສຸດທ້າຍໃນ newstr.

occurrences: ຈຳນວນການແທັນທີ່ສູງສຸດ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 0, ເຊິ່ງໝາຍຄວາມວ່າຈະແທນທີ່ທຸກໆຕຳແໜ່ງທີ່ພົບ.

ເມື່ອ oldstr ເປັນອາເຣ, ພະລາມິເຕີ occurrence ຈະຖືກຄິດໄລ່ແຍກຕ່າງຫາກສຳລັບແຕ່ລະລາຍການໃນອາເຣ.

casesensitive: ການຄົ້ນຫາສາມາດກຳນົດໃຫ້ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

        MsgBox SF_String.ReplaceStr("100 xxx 200 yyy", Array("xxx", "yyy"), Array("(1)", "(2)"), CaseSensitive := False)
        ' "100 (1) 200 (2)"
        MsgBox SF_String.ReplaceStr("abCcdefghHij", Array("c", "h"), Array("Y", "Z"), CaseSensitive := False)
        ' "abYYdefgZZij"

## Represent

ສົ່ງຄືນສະຕຣິງທີ່ສະແດງຂໍ້ມູນຂອງອາຄິວເມນໃນຮູບແບບທີ່ອ່ານໄດ້, ໂດຍຈະຕັດໃຫ້ສັ້ນລົງຕາມຄວາມຍາວທີ່ກຳນົດ. ສ່ວນຫຼາຍຈະມີປະໂຫຍດສຳລັບການແກ້ໄຂຈຸດບົກພ່ອງ (debugging) ຫຼື ການບັນທຶກຂໍ້ມູນ (logging).

ຖ້າພະລາມິເຕີ anyvalue ເປັນອັອບເຈັກ, ມັນຈະຖືກໃສ່ໃນວົງເລັບຫຼ່ຽມ "[" ແລະ "]".

ໃນສະຕຣິງ, ການແທັບ ແລະ ການຂຶ້ນແຖວໃໝ່ຈະຖືກແທນທີ່ດ້ວຍ \t, \n ຫຼື \r.

ຖ້າຄວາມຍາວສຸດທ້າຍເກີນພະລາມິເຕີ maxlength, ສ່ວນທ້າຍຂອງສະຕຣິງຈະຖືກແທນທີ່ດ້ວຍ " ... (N)" ເຊິ່ງ N ແມ່ນຄວາມຍາວທັງໝົດຂອງສະຕຣິງເດີມກ່ອນທີ່ຈະຖືກຕັດ.

### ໄວຍາກອນ:

svc.Represent(anyvalue: any, [maxlength: int]): str

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

anyvalue: ຄ່າຂາເຂົ້າທີ່ຈະສະແດງ. ມັນສາມາດເປັນຄ່າໃດໆກໍໄດ້ ເຊັ່ນ: ສະຕຣິງ, ອາເຣ, ອັອບເຈັກ Basic, ອັອບເຈັກ UNO, ແລະ ອື່ນໆ.

maxlength: ຄວາມຍາວສູງສຸດຂອງສະຕຣິງຜົນລັບ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 0, ເຊິ່ງໝາຍຄວາມວ່າບໍ່ມີການຈຳກັດຄວາມຍາວຂອງການສະແດງຜົນ.

### ຕົວຢ່າງ:

        MsgBox SF_String.Represent("this is a usual string") ' "this is a usual string"
        MsgBox SF_String.Represent("this is a usual string", 15) ' "this i ... (22)"
        MsgBox SF_String.Represent("this is a" & Chr(10) & " 2-lines string") ' "this is a\n 2-lines string"
        MsgBox SF_String.Represent(Empty) ' "[EMPTY]"
        MsgBox SF_String.Represent(Null) ' "[NULL]"
        MsgBox SF_String.Represent(Pi) ' "3.142"
        MsgBox SF_String.Represent(CreateUnoService("com.sun.star.util.PathSettings")) ' "[com.sun.star.comp.framework.PathSettings]"

ຮັບຊາບວ່າການສະແດງປະເພດຂໍ້ມູນ ເຊັ່ນ: ອາເຣ ແລະ ອິນສະແຕນຊ໌ຂອງອັອບເຈັກ ScriptForge.Dictionary ຈະລວມເອົາທັງປະເພດຂໍ້ມູນ ແລະ ຄ່າຂອງພວກມັນ:

        ' ຕົວຢ່າງຂອງ Array ພາຍໃນຂອງ Basic
        MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
        ' "[ARRAY] (0:2) (1, 2, Text\there)"
        ' ຕົວຢ່າງຂອງ ScriptForge Array
        Dim aValues as Variant
        aValues = SF_Array.RangeInit(1, 5)
        MsgBox SF_String.Represent(aValues)
        ' "[ARRAY] (0:4) (1.0, 2.0, 3.0, 4.0, 5.0)"
        ' ຕົວຢ່າງຂອງ ScriptForge Dictionary
        Dim myDict As Variant : myDict = CreateScriptService("Dictionary")
        myDict.Add("A", 1) : myDict.Add("B", 2)
        MsgBox SF_String.Represent(myDict)
        ' "[Dictionary] ("A":1, "B":2)"

## Reverse

ສົ່ງຄືນສະຕຣິງຂາເຂົ້າໃນຮູບແບບປີ້ນລຳດັບ.

ເມທອດນີ້ທຽບເທົ່າກັບ StrReverse Basic function ທີ່ມີມາພ້ອມກັບລະບົບ.

ເພື່ອໃຊ້ຟັງຊັນ StrReverse, ຈະຕ້ອງມີຄຳສັ່ງ Option VBASupport 1 ໃນໂມດູນ.

### ໄວຍາກອນ:

svc.Reverse(inputstr: str): str

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

inputstr: ສະຕຣິງທີ່ຈະປີ້ນລຳດັບ.

### ຕົວຢ່າງ:

        MsgBox SF_String.Reverse("abcdefghij") ' "jihgfedcba"

## SplitLines

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

### ໄວຍາກອນ:

svc.SplitLines(inputstr: str, [keepbreaks: int]): str[0..*]

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

inputstr: ສະຕຣິງທີ່ຈະແຍກ.

keepbreaks: ເມື່ອເປັນ True, ຕົວອັກສອນຂຶ້ນແຖວໃໝ່ຈະຖືກເກັບໄວ້ໃນອາເຣຜົນລັບ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

        Dim a as Variant
        a = SF_String.SplitLines("Line1" & Chr(10) & "Line2" & Chr(13) & "Line3")
        ' a = Array("Line1", "Line2", "Line3")
        a = SF_String.SplitLines("Line1" & Chr(10) & "Line2" & Chr(13) & "Line3" & Chr(10))
        ' a = Array("Line1", "Line2", "Line3", "")
        a = SF_String.SplitLines("Line1" & Chr(10) & "Line2" & Chr(13) & "Line3" & Chr(10), KeepBreaks := True)
        ' a = Array("Line1\n", "Line2\r", "Line3\n", "")

## SplitNotQuoted

ແຍກສະຕຣິງອອກເປັນອາເຣຂອງສະມາຊິກຕ່າງໆ ໂດຍໃຊ້ຕົວຂັ້ນ (delimiter) ທີ່ລະບຸ.

ຖ້າຂໍ້ຄວາມຍ່ອຍທີ່ຢູ່ໃນເຄື່ອງໝາຍຄຳເວົ້າມີຕົວຂັ້ນຢູ່ພາຍໃນ, ຕົວຂັ້ນນັ້ນຈະຖືກລະເວັ້ນ. ນີ້ມີປະໂຫຍດຫຼາຍໃນການວິເຄາະຂໍ້ມູນ (parsing) ທີ່ຄືກັບ CSV ເຊິ່ງມີສະຕຣິງທີ່ຢູ່ໃນເຄື່ອງໝາຍຄຳເວົ້າ.

### ໄວຍາກອນ:

svc.SplitNotQuoted(inputstr: str, [delimiter: str], [occurrences: int], [quotechar: str]): str[0..*]

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

inputstr: ສະຕຣິງທີ່ຈະແຍກ.

delimiter: ສະຕຣິງຂອງຕົວອັກສອນໜຶ່ງຕົວ ຫຼື ຫຼາຍຕົວທີ່ຈະໃຊ້ເປັນຕົວຂັ້ນ. ຕົວຂັ້ນເລີ່ມຕົ້ນແມ່ນຕົວອັກສອນຊ່ອງວ່າງ ASCII " ".

occurrences: ຈຳນວນຂໍ້ຄວາມຍ່ອຍສູງສຸດທີ່ຈະສົ່ງຄືນ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 0, ເຊິ່ງໝາຍຄວາມວ່າບໍ່ມີການຈຳກັດຈຳນວນສະຕຣິງທີ່ຈະສົ່ງຄືນ.

quotechar: ສາມາດເປັນເຄື່ອງໝາຍຄຳເວົ້າດ່ຽວ (') ຫຼື ເຄື່ອງໝາຍຄຳເວົ້າຄູ່ (").

### ຕົວຢ່າງ:

##### ໃນ Basic

        arr1 = SF_String.SplitNotQuoted("abc def ghi")
        ' arr1 = Array("abc", "def", "ghi")
        arr2 = SF_String.SplitNotQuoted("abc,""def,ghi""", ",")
        ' arr2 = Array("abc", """def,ghi""")
        arr3 = SF_String.SplitNotQuoted("abc,""def\"",ghi""", ",")
         ' arr3 = Array("abc", """def\"",ghi""")
        arr4 = SF_String.SplitNotQuoted("abc,""def\"",ghi"""",", ",")
        ' arr4 = Array("abc", """def\"",ghi""", "")

##### ໃນ Python

        svc = CreateScriptService("String")
        arr1 = svc.SplitNotQuoted('abc def ghi')
        # arr1 = ('abc', 'def', 'ghi')
        arr2 = svc.SplitNotQuoted('abc,"def,ghi"', ",")
        # arr2 = ('abc', '"def,ghi"')
        arr3 = svc.SplitNotQuoted(r'abc,"def\",ghi"', ",")
        # arr3 = ('abc', '"def\\",ghi"')
        arr4 = svc.SplitNotQuoted(r'abc,"def\",ghi"",', ",")
        # arr4 = ('abc', '"def\\",ghi""', '')

ກະລຸນາລະວັງຄວາມແຕກຕ່າງລະຫວ່າງ Basic ແລະ Python ໃນການສະແດງສະຕຣິງ. ຕົວຢ່າງ: ໃນ Basic ຕົວອັກສອນ "" ສອງຕົວພາຍໃນສະຕຣິງຈະຖືກຕີຄວາມໝາຍເປັນຕົວອັກສອນ " ພຽງຕົວດຽວ. ໃນ Python, ສະຕຣິງທີ່ຢູ່ໃນເຄື່ອງໝາຍຄຳເວົ້າດ່ຽວ ສາມາດມີຕົວອັກສອນ " ໄດ້ໂດຍບໍ່ຕ້ອງໃສ່ຊ້ຳກັນສອງຕົວ.

## StartsWith

ສົ່ງຄືນ True ຖ້າຕົວອັກສອນທຳອິດຂອງສະຕຣິງກົງກັບຂໍ້ຄວາມຍ່ອຍທີ່ໃຫ້ມາ.

ເມທອດນີ້ຈະສົ່ງຄືນ False ຖ້າສະຕຣິງຂາເຂົ້າ ຫຼື ຂໍ້ຄວາມຍ່ອຍມີຄວາມຍາວເທົ່າກັບ 0 ຫຼື ເມື່ອຂໍ້ຄວາມຍ່ອຍຍາວກວ່າສະຕຣິງຂາເຂົ້າ.

### ໄວຍາກອນ:

svc.StartsWith(inputstr: str, substring: str, [casesensitive: bool]): bool

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

inputstr: ສະຕຣິງທີ່ຈະກວດສອບ.

substring: ຂໍ້ຄວາມຍ່ອຍທີ່ຈະຄົ້ນຫາໃນຕອນເລີ່ມຕົ້ນຂອງ inputstr.

casesensitive: ການຄົ້ນຫາສາມາດກຳນົດໃຫ້ຕົວພິມໃຫຍ່-ນ້ອຍມີຄວາມໝາຍຕ່າງກັນຫຼືບໍ່ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

        MsgBox SF_String.StartsWith("abcdefg", "ABC") 'True
        MsgBox SF_String.StartsWith("abcdefg", "ABC", CaseSensitive := True) 'False

## TrimExt

ສົ່ງຄືນສະຕຣິງຂາເຂົ້າໂດຍການຕັດຊ່ອງວ່າງທາງໜ້າ ແລະ ທາງຫຼັງອອກ.

### ໄວຍາກອນ:

svc.TrimExt(inputstr: str): str

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

inputstr: ສະຕຣິງທີ່ຈະຕັດຊ່ອງວ່າງ.

### ຕົວຢ່າງ:

        MsgBox SF_String.TrimExt(" Some text.  ") ' "Some text."
        MsgBox SF_String.TrimExt("   ABCDEF" & Chr(9) & Chr(10) & Chr(13) & " ") ' "ABCDEF"

## Unescape

ແປງລຳດັບການຫຼົບຫຼີກໃດໆ (\\, \n, \r, \t) ໃນສະຕຣິງຂາເຂົ້າໃຫ້ເປັນຕົວອັກສອນ ASCII ທີ່ກ່ຽວຂ້ອງ.

### ໄວຍາກອນ:

svc.Unescape(inputstr: str): str

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

inputstr: ສະຕຣິງທີ່ຈະແປງ.

### ຕົວຢ່າງ:

        MsgBox SF_String.Unescape("abc\n\tdef\\n")
        ' "abc" & Chr(10) & Chr(9) & "def\n"

## Unquote

ເອົາເຄື່ອງໝາຍຄຳເວົ້າດ່ຽວ ຫຼື ຄູ່ທີ່ຢູ່ທາງໜ້າ ແລະ ທາງຫຼັງຂອງສະຕຣິງຂາເຂົ້າອອກ.

ນີ້ມີປະໂຫຍດຫຼາຍໃນການວິເຄາະຂໍ້ມູນ (parsing) ທີ່ຄືກັບ CSV ເຊິ່ງມີສະຕຣິງທີ່ຢູ່ໃນເຄື່ອງໝາຍຄຳເວົ້າ.

### ໄວຍາກອນ:

svc.Unquote(inputstr: str, [quotechar: str]): str

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

inputstr: ສະຕຣິງທີ່ຈະເອົາເຄື່ອງໝາຍຄຳເວົ້າອອກ.

quotechar: ສາມາດເປັນເຄື່ອງໝາຍຄຳເວົ້າດ່ຽວ (') ຫຼື ເຄື່ອງໝາຍຄຳເວົ້າຄູ່ (") (ຄ່າເລີ່ມຕົ້ນ).

### ຕົວຢ່າງ:

        Dim s as String
        ' s = "Some text" (ໂດຍບໍ່ມີເຄື່ອງໝາຍຄຳເວົ້າຄຸມ)
        s = SF_String.Unquote("""Some text""")
        ' ສະຕຣິງລຸ່ມນີ້ບໍ່ມີເຄື່ອງໝາຍຄຳເວົ້າຄຸມ, ດັ່ງນັ້ນມັນຈຶ່ງຄືເກົ່າບໍ່ມີການປ່ຽນແປງ
        ' s = "Some text" (ຄືເກົ່າ)
        s = SF_String.Unquote("Some text")
        ' ເຄື່ອງໝາຍຄຳເວົ້າພາຍໃນສະຕຣິງຈະບໍ່ຖືກເອົາອອກ
        ' s = "The ""true"" meaning" (ຄືເກົ່າ)
        s = SF_String.Unquote("The ""true"" meaning")

## Wrap

ແປງສະຕຣິງຂາເຂົ້າເປັນອາເຣຂອງຂໍ້ຄວາມຍ່ອຍ ເພື່ອໃຫ້ແຕ່ລະລາຍການໃນອາເຣມີຈຳນວນຕົວອັກສອນບໍ່ເກີນທີ່ກຳນົດໃຫ້.

ໃນທາງປະຕິບັດ, ເມທອດນີ້ຈະສົ່ງຄືນອາເຣຂອງແຖວຜົນລັບທີ່ເລີ່ມຈາກສູນ, ໂດຍບໍ່ມີຕົວອັກສອນຂຶ້ນແຖວໃໝ່ຢູ່ຕອນທ້າຍ, ຍົກເວັ້ນການຂຶ້ນແຖວໃໝ່ທີ່ມີຢູ່ກ່ອນແລ້ວ.

ການແທັບຈະຖືກຂະຫຍາຍໂດຍໃຊ້ວິທີດຽວກັນກັບທີ່ເຮັດໂດຍເມທອດ ExpandTabs.

ສັນຍະລັກການຂຶ້ນແຖວໃໝ່ຈະຖືກແທນທີ່ດ້ວຍຕົວອັກສອນ ASCII ທີ່ທຽບເທົ່າ.

ຖ້າຜົນລັບທີ່ຖືກຂຶ້ນແຖວໃໝ່ (wrapped) ບໍ່ມີເນື້ອໃນ, ອາເຣທີ່ສົ່ງຄືນມາຈະວ່າງເປົ່າ.

### ໄວຍາກອນ:

svc.Wrap(inputstr: str, [width: int], [tabsize: int]): str

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

inputstr: ສະຕຣິງທີ່ຈະຈັດການຂຶ້ນແຖວໃໝ່.

width: ຈຳນວນຕົວອັກສອນສູງສຸດໃນແຕ່ລະແຖວ (ຄ່າເລີ່ມຕົ້ນ = 70).

tabsize: ກ່ອນການຂຶ້ນແຖວໃໝ່, ຕົວອັກສອນ TAB Chr(9) ທີ່ມີຢູ່ຈະຖືກແທນທີ່ດ້ວຍຊ່ອງວ່າງ. ອາຄິວເມນ tabsize ຈະກຳນົດ TAB stops ທີ່ TabSize + 1, 2 * TabSize + 1, ... N * TabSize + 1 (ຄ່າເລີ່ມຕົ້ນ = 8).

### ຕົວຢ່າງ:

##### ໃນ Basic

        a = "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
        b = SF_String.Wrap(a, 20)
        ' Array("Neque porro ", "quisquam est qui ", "dolorem ipsum quia ", "dolor sit amet, ", "consectetur, ", "adipisci velit...")

##### ໃນ Python

        a = "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
        b = svc.Wrap(a, 20)
        # ('Neque porro ', 'quisquam est qui ', 'dolorem ipsum quia ', 'dolor sit amet, ', 'consectetur, ', 'adipisci velit...')

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

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

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

ຟັງຊັນ String