Storitev ScriptForge.String

Storitev String ponuja zbirko metod za obdelavo nizov. S temi metodami lahko:

Definicije

Prelomi vrstic

Storitev String prepozna naslednje prelome vrstic:

Simbolično ime

Število ASCII

Pomik v novo vrstico
Navpični tabulator
Pomik na začetek vrstice
Pomik na začetek vrstice + pomik v novo vrstico
Ločilo datotek
Ločilo skupin
Ločilo zapisov
Naslednja vrstica
Ločilo vrstic
Ločilo odstavkov

10
12
13
13 + 10
28
29
30
133
8232
8233


Presledki

Storitev String prepozna naslednje prazne znake (angl. whitespace):

Simbolično ime

Število ASCII

Presledek
Vodoravni tabulator
Pomik v novo vrstico
Navpični tabulator
Pomik po obrazcu
Prehod na začetek vrstice
Naslednja vrstica
Neprelomni presledek
Ločilo vrstic
Ločilo odstavkov

32
9
10
11
12
13
133
160
8232
8233


Ubežna zaporedja

Sledi seznam ubežnih zaporedij, ki jih lahko uporabite v nizih.

Ubežno zaporedje

Simbolično ime

Število ASCII

\n
\r
\t

Pomik v novo vrsto
Prehod na začetek vrstice
Vodoravni tabulator

10
13
9


tip

Če želite, da se ubežni niz "\n" interpretira kot navaden niz, enostavno uporabite "\\n" namesto "\" & Chr(10).


Nenatisljivi znaki:

Znaki, ki so v zbirki znakov Unicode Character Database določeni kot “Other” ali “Separator”, veljajo za nenatisljive znake.

Kontrolni znaki (koda ASCII <= 0x1F) prav tako veljajo za nenatisljive.

Citati znotraj nizov:

Za uporabo narekovajev v nizih uporabite \' (enojni narekovaj) ali \" (dvojni narekovaj). Primer:

Priklic storitve

Pred uporabo storitve ScriptForge.String je potrebno naložiti knjižnico ScriptForge na sledeč način:

V Basicu

      GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
  

Z nalaganjem knjižnice ustvarite predmet SF_String, ki ga lahko uporabite za klicanje metod v storitvi String.

Naslednji odlomki kode kažejo tri načine klica metod storitve String (metoda Capitalize služi kot primer):


    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
  
V Pythonu

Spodnji odlomek kode ilustrira klicanje metod iz storitve String v skriptih Python. Metoda IsIPv4 služi kot primer.


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

Lastnosti

Predmet SF_String zagotavlja naslednje lastnosti za skripte Basic:

Ime

Samo za branje

Opis

sfCR

Da

Prehod na začetek vrstice (CF): Chr(13)

sfCRLF

Da

Prehod na začetek vrstice (CF) + pomik v novo vrstico (LF): Chr(13) & Chr(10)

sfLF

Da

Pomik v novo vrsto (LF): Chr(10)

sfNEWLINE

Da

Prehod na začetek vrstice + pomik v novo vrsto, ki je lahko:
1) Chr(13) & Chr(10) ali
2) zgolj pomik v novo vrsto – Chr(10),
odvisno od operacijskega sistema.

sfTAB

Da

Vodoravni tabulator: Chr(9)


tip

Zgornje lastnosti lahko uporabite za identifikacijo ali vstavljanje ustreznih znakov v nize. Primer: pomik v novo vrsto (LF) lahko zamenja SF_String.sfLF.


Seznam metod storitve Strings

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


note

Prvi argument večine metod je niz, ki bo obravnavan. Vedno je podan s sklicem in se ne spreminja. Metode, ko sta Capitalize in Escape, vrnejo po izvajanju novi niz.


warning

Ker ima Python vgrajeno izčrpno podporo za nize, je večina metod storitve String na voljo le za skripte Basic. Metode, ki so na voljo za Basic in Python, so: HashStr, IsADate, IsEmail, IsFileName, IsIBAN, IsIPv4, IsLike, IsSheetName, IsUrl, SplitNotQuoted in Wrap.


Capitalize

Prvi znak vsake besede v vhodnem nizu zamenja z njegovo veliko črko.

Skladnja:

svc.Capitalize(inputstr: str): str

Parametri:

inputstr: niz, katerega besede bodo dobile velike začetnice.

Primer:


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

Count

Prešteje število pojavitev podniza ali regularnega izraza v nizu.

Skladnja:

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

Parametri:

inputstr: vhodni niz, ki bo preučen.

substring: podniz regularnega izraza, ki bo uporabljen pri iskanju.

isregex: uporabite True, če je podniz regularni izraz (privzeto = False)

casesensitive: pri primerjanju lahko velja razlika med velikimi in malimi črkami ali ne (privzeta vrednost je False).

Primer:


    'Prešteje pojavitve podniza "or" v vhodnem nizu (vrne 2)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "or", CaseSensitive := False)
    'Prešteje besede z zgolj malimi črkami (vrne 7)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", IsRegex := True, CaseSensitive := True)
  
tip

Če želite izvedeti več o regularnih izrazih, si oglejte dokumentacijo Python na spletni strani Regular Expression Operations (v angl.).


EndsWith

Vrne True, če se niz konča z navedenim podnizom.

Funkcija vrne False, ko ima niz oz. podniz dolžino = 0 ali ko je podniz daljši od niza.

Skladnja:

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

Parametri:

inputstr: niz, ki bo preverjen.

substring: podniz, ki bo preiskan na koncu inputstr.

casesensitive: pri primerjanju lahko velja razlika med velikimi in malimi črkami ali ne (privzeta vrednost je False).

Primer:


    'Vrne True, ker je metoda klicana s privzeto vrednostjo CaseSensitive = False
    MsgBox SF_String.EndsWith("abcdefg", "EFG")
    'Vrne False zaradi vrednosti parametra CaseSensitive
    MsgBox SF_String.EndsWith("abcdefg", "EFG", CaseSensitive := True)
  

Escape

Pretvori prelome vrstic in tabulatorje v vhodnem nizu v njim ustrezna ubežna zaporedja (\\, \n, \r, \t).

Skladnja:

svc.Escape(inputstr: str): str

Parametri:

inputstr: niz, ki bo pretvorjen.

Primer:


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

ExpandTabs

Zamenja tabulatorske znake Chr(9) s presledki, da oponaša vedenje tabulatorskih mest.

Če najde prelom vrstice, se začne nova vrstica in števec znakov se ponastavi.

Skladnja:

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

Parametri:

inputstr: niz, ki bo razširjen.

tabsize: ta parameter se uporablja za določitev tabulatorskih mest z uporabo formule: TabSize + 1, 2 * TabSize + 1 ... N * TabSize + 1 (privzeto = 8)

Primer:


    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

Zamenja vse nenatisljive znake v vhodnem nizu z danim znakom.

Skladnja:

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

Parametri:

inputstr: niz, ki bo preiskan.

replacedby: nič, eden ali več znakov, ki bodo zamenjali vse nenatisljive znake v inputstr (privzeto = "")

Primer:


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

FindRegex

V nizu najde podniz, ki se ujema s podanim regularnim izrazom.

Skladnja:

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

Parametri:

inputstr: niz, ki bo preiskan.

regex: regularni izraz.

start: položaj v nizu, kjer se bo začelo iskanje. Ta parameter je podan s sklicem, zato po izvajanju vrednost start kaže na prvi znak najdenega podniza. Če ni zadetka med podnizi, bo start nastavljen na 0.

casesensitive: pri primerjanju lahko velja razlika med velikimi in malimi črkami ali ne (privzeta vrednost je False).

forward: določa smer iskanja. Če je True, se iskanje pomakne naprej. Če je False, se iskanje pomakne nazaj (privzeta vrednost je True)

Če je forward = True, mora biti pri prvi iteraciji start enak 1, če pa je forward = False, potem mora biti start enak Len(inputstr)

Primer:


    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
  
tip

V zgornjem primeru lahko uporabite novo vrednost lStart za nadaljnje iskanje istega vhodnega niza, če pri naslednji iteraciji nastavite parameter Start na lStart + Len(result).


HashStr

Zgoščevalne funkcije se uporabljajo v kriptografskih algoritmih, za digitalne podpise, overitvene kode sporočil, zaznavanje manipulacij, prstne odtise, kontrolne vsote (preverjanje integritete sporočil), tabele zgoščenih vrednosti, hrambo gesel in še mnogo drugega.

Metoda HashStr vrne rezultat zgoščevalne funkcije, izvedene na podanem nizu z uporabo navedenega algoritma, in sicer kot niz šestnajstiških števk, zapisan z malimi črkami.

Podprti algoritmi zgoščevalne funkcije so: MD5, SHA1, SHA224, SHA256, SHA384 in SHA512.

Skladnja:

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

Parametri:

inputstr: niz za zgoščevanje. Predvideva se, da je kodiran v UTF-8. Algoritem zgoščevalne funkcije obravnava niz kot tok bajtov.

algorithm: eden od podprtih algoritmov, navedenih zgoraj, podan kot niz.

Primer:

V Basicu

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

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

HtmlEncode

Kodira vhodni niz v znakovnih kodah HTML, pri čemer zamenja posebne znake z njihovimi nadomestnimi kodami &.

Primer: znak é bo zamenjan z &eacute; ali ekvivalentno številsko kodo HTML.

Skladnja:

svc.HtmlEncode(inputstr: str): str

Parametri:

inputstr: niz, ki bo kodiran.

Primer:


    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

Vrne True, če je vhodni niz veljaven datum glede na navedeno obliko datuma.

Skladnja:

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

Parametri:

inputstr: niz, ki bo preverjen. Če je prazen, metoda vrne False.

dateformat: oblika datuma, podana kot niz. Možne vrednosti so "YYYY-MM-DD" (privzeto), "DD-MM-YYYY" in "MM-DD-YYYY"

Pomišljaj (-) lahko zamenjate s piko (.), poševnico (/) ali presledkom.

Če oblika ni veljavna, metoda vrne False.

Primer:

V Basicu

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

Ta metoda preveri obliko vhodnega niza brez izvajanja specifičnih koledarskih preverjanj. Zato ne preveri vhodni niz glede prestopnih let ali mesecev s 30 ali 31 dnevi. Za te potrebe si oglejte vgrajeno funkcijo IsDate.


Spodnji primer prikazuje razliko med metodo IsADate (ScriptForge) in (vgrajeno) funkcijo IsDate.


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

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

IsAlpha

Vrne True, če so vsi znaki v nizu abecedni.

Abecedni znaki so znaki, določeni v zbirki znakov Unicode Character Database kot Letter.

Skladnja:

svc.IsAlpha(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:


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

IsAlphaNum

Vrne True, če so vsi znaki v nizu abecedni, števke ali "_" (podčrtaji). Prvi znak ne sme biti števka.

Skladnja:

svc.IsAlphaNum(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:


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

IsAscii

Vrne True, če so vsi znaki v nizu znaki ASCII.

Skladnja:

svc.IsAscii(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:


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

IsDigit

Vrne True, če so vsi znaki v nizu števke.

Skladnja:

svc.IsDigit(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:


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

IsEmail

Vrne True, če je niz veljaven e-poštni naslov.

Skladnja:

svc.IsEmail(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:

V Basicu

    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
  
V Pythonu

    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

Vrne True, če je niz veljavno ime datoteke v danem operacijskem sistemu.

Skladnja:

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

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

osname: ime operacijskega sistema, kot niz. Možne vrednosti so "WINDOWS", "LINUX", "MACOSX" in "SOLARIS".

Privzeta vrednost je ime trenutnega operacijskega sistema, na katerem se izvaja skript.

Primer:

V Basicu

    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
  
V Pythonu

    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

Vrne True, če so vsi znaki v nizu šestnajstiške števke.

Skladnja:

svc.IsHexDigit(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Šestnajstiške števke imajo lahko predponi "0x" in "&H".

Primer:


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

IsIBAN

Vrne True, če je niz veljavna mednarodna številka bančnega računa IBAN (International Bank Account Number). Primerjava ne razlikuje med malimi in velikimi črkami.

Skladnja:

svc.IsIBAN(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Vrnjena vrednost:

Vrne True, če niz vsebuje veljavno številko IBAN.

Primer:


    ' 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

Vrne True, če je niz veljaven naslov IP(v4).

Skladnja:

svc.IsIPv4(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:

V Basicu

    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
  
V Pythonu

    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

Vrne True, če celotni vhodni niz ujema z danim vzorcem, ki vsebuje nadomestne znake.

Skladnja:

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

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

pattern: vzorec kot niz. Nadomestna znaka sta:

casesensitive: pri iskanju lahko velja razlika med velikimi in malimi črkami ali ne (privzeta vrednost je False).

Primer:

V Basicu

    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
  
V Pythonu

    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

Vrne True, če so vsi znaki v nizu male črke. Znaki izven abecede so prezrti.

Skladnja:

svc.IsLower(inputstr: str): bool

Parametri:

InputStr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:


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

IsPrintable

Vrne True, če so vsi znaki v nizu natisljivi.

Skladnja:

svc.IsPrintable(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:


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

IsRegex

Vrne True, če se celotni vhodni niz ujema z danim regularnim izrazom.

Skladnja:

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

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

regex: regularni izraz. Če je prazno, metoda vrne False.

casesensitive: pri iskanju lahko velja razlika med velikimi in malimi črkami ali ne (privzeta vrednost je False).

Primer:


        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

Vrne True, če je vhodni niz veljavno ime delovnega lista za Calc.

Skladnja:

svc.IsSheetName(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:

V Basicu

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

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

Ime delovnega lista ne sme vsebovati znakov [ ] * ? : / \ ali znak ' (apostrof) kot prvi ali zadnji znak.


IsTitle

Vrne True, če je prvi znak vsake besede velika črka, drugi znaki pa so male črke.

Skladnja:

svc.IsTitle(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:


    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

Vrne True, če so vsi znaki v nizu velike črke. Znaki izven abecede so prezrti.

Skladnja:

svc.IsUpper(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:


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

IsUrl

Vrne True, če je niz veljaven absolutni naslov URL (za angl. Uniform Resource Locator). Podprti so le protokoli http, https in ftp.

Skladnja:

svc.IsUrl(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:

V Basicu

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

    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

Vrne True, če so vsi znaki niza presledki.

Skladnja:

svc.IsWhitespace(inputstr: str): bool

Parametri:

inputstr: niz, ki bo preverjen. Če je prazno, metoda vrne False.

Primer:


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

JustifyCenter

Vrne vhodni niz, poravnan sredinsko.

Vodilni in sledilni presledki so odstranjeni in preostali znaki so zapolnjeni levo in desno do navedene dolžine length z znakom padding.

Skladnja:

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

Parametri:

inputstr:niz, ki ga želite sredinsko poravnati. Če je prazen, metoda vrne prazen niz.

length: dolžina izhodnega niza (privzeta vrednost je dolžina vhodnega niza).

Če je navedena dolžina krajša od sredinsko poravnanega vhodnega niza, je vrnjeni niz obrezan.

padding: posamezni znak, ki bo uporabljen za razmik do vsebine (privzeta vrednost je presledek ASCII " ").

Primer:


    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

Vrne vhodni niz, poravnan levo.

Vodilni in sledilni presledki so odstranjeni in preostali znaki so zapolnjeni desno do navedene dolžine length z znakom padding.

Skladnja:

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

Parametri:

inputstr: niz, ki bo poravnan levo. Če je prazen, metoda vrne prazen niz.

length: dolžina izhodnega niza (privzeta vrednost je dolžina vhodnega niza).

Če je navedena dolžina krajša od levo poravnanega vhodnega niza, je vrnjeni niz obrezan.

padding: posamezni znak, ki bo uporabljen za razmik do vsebine (privzeta vrednost je presledek ASCII " ").

Primer:


    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

Vrne vhodni niz, poravnan desno.

Vodilni in sledilni presledki so odstranjeni in preostali znaki so zapolnjeni levo do navedene dolžine length z znakom padding.

Skladnja:

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

Parametri:

inputstr: niz, ki bo poravnan desno. Če je prazen, metoda vrne prazen niz.

length: dolžina izhodnega niza (privzeta vrednost je dolžina vhodnega niza).

Če je navedena dolžina krajša od desno poravnanega vhodnega niza, je vrnjeni niz obrezan.

padding: posamezni znak, ki bo uporabljen za razmik do vsebine (privzeta vrednost je presledek ASCII " ").

Primer:


    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

Vrne vhodni niz v enojnih ali dvojnih narekovajih. Obstoječi narekovaji so ohranjeni nespremenjeni, vključno z vodilnimi in/ali sledilnimi narekovaji.

Skladnja:

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

Parametri:

inputstr: niz, ki bo odet v oklepaje.

quotechar: enojni (') ali dvojni (") narekovaj (privzeto).

Primer:


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

Ta metoda je lahko uporabna pri pripravi polja niza, ki bo shranjen v datoteki, podobni CSV, ki zahteva, da so besedilne vrednosti podane v enojnih ali dvojnih narekovajih.


ReplaceChar

Zamenja vse pojavitve znakov, navedenih v parametru Before, z ustreznimi znaki, navedenimi v After.

Če je dolžina Before večja od dolžine After, bo preostale znake v Before zamenjal zadnji znak v After.

Skladnja:

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

Parametri:

inputstr: vhodni niz, v katerem se bodo izvedle zamenjave.

before: niz z znaki, ki bodo poiskani v vhodnem nizu in zamenjani.

after: niz z novimi znaki, ki bodo zamenjali tiste, določene v before.

Primer:


    ' Zamenja naglašene znake
    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"
  

Storitev SF_String ponuja uporabne konstante (public) za latinične nize znakov, kar prikazuje spodnji primer:


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

ReplaceRegex

Vse pojavitve danega regularnega izraza nadomesti z novim nizom.

Skladnja:

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

Parametri:

inputstr: vhodni niz, v katerem se bodo izvedle zamenjave.

regex: regularni izraz.

newstr: nadomestni niz.

casesensitive: pri iskanju lahko velja razlika med velikimi in malimi črkami ali ne (privzeta vrednost je False).

Primer:


    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." (vsako malo črko zamenja "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." (vsako besedo zamenja "x")
  

ReplaceStr

V nizu zamenja nekatere ali vse pojavitve polja nizov s poljem novih nizov.

Skladnja:

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

Parametri:

inputstr: vhodni niz, v katerem se bodo izvedle zamenjave.

oldstr: posamezen niz ali polje nizov. Nizi ničelne dolžine so prezrti.

newstr: nadomestni niz ali polje nadomestnih nizov.

Če je oldstr polje, bo vsako pojavitev katerega od elementov oldstr zamenjal newstr.

Če sta oldstr in newstr polji, se zamenjave izvršijo ena za drugo do meje UBound(newstr).

Če ima oldstr več vnosov kot newstr, preostale elemente v oldstr zamenja zadnji element v newstr.

occurrences: največje število zamenjav. Privzeta vrednost je 0, kar pomeni, da bodo vse pojavitve zamenjane.

Če je oldstr polje, se parameter occurrence izračuna ločeno za vsak element polja.

casesensitive: pri iskanju lahko velja razlika med velikimi in malimi črkami ali ne (privzeta vrednost je False).

Primer:


    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

Vrne niz z berljivo reprezentacijo argumenta, odrezano na dani dolžini. To je uporabno predvsem za razhroščevanje ali beleženje dejavnosti.

Če je parameter anyvalue predmet, bo podan v oglatih oklepajih ("[" in "]").

V nizih se tabulatorji in prelomi vrstic zamenjajo z \t, \n in \r.

Če končna dolžina presega parameter maxlength, slednji del niza nadomesti " ... (N)", kjer je N skupna dolžina izvornega niza pred porezavo.

Skladnja:

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

Parametri:

anyvalue: vhodna vrednost, ki bo reprezentirana. Lahko je poljubna vrednost, kot je niz, polje, predmet Basic, predmet UNO itn.

maxlength: največja dolžina izhodnega niza. Privzeta vrednost je 0, kar pomeni, da ni omejitve dolžine vrnjene reprezentacije.

Primer:


    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]"
  

Upoštevajte, da reprezentacija podatkovnih vrst, kot so polja in instanc predmetov ScriptForge.Dictionary vključuje tako vrsto podatkov kot njihove vrednosti:


    ' Primer z vgrajenim poljem Basic
    MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
    ' "[ARRAY] (0:2) (1, 2, Text\there)"
    ' Primer s poljem ScriptForge
    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)"
    ' Primer s slovarjem ScriptForge
    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

Vrne vhodni niz v obratnem zaporedju znakov.

Ta metoda je ekvivalentna vgrajeni funkciji Basic StrReverse.

note

Za uporabo funkcije StrReverse mora biti v modulu prisotna izjava OpTion VBASupport 1.


Skladnja:

svc.Reverse(inputstr: str): str

Parametri:

inputstr: niz, ki bo preobrnjen.

Primer:


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

SplitLines

Vrne ničelno polje nizov z vrsticami v vhodnem nizu. Vsak element polja je pridobljen z deljenjem vhodnega niza pri znakih za novo vrstico.

Skladnja:

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

Parametri:

inputstr: niz, ki ga želimo razdeliti.

keepbreaks: če je True, se prelomi vrstice v izhodnem polju ohranijo (privzeta vrednost je False).

Primer:


    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

Razdeli niz v polje elementov z uporabo navedenega ločila.

Če podniz v navedku vsebuje ločilo, je prezrto. To je uporabno, ko razčlenjujete zapise, podobne CSV, ki vsebujejo citiranim nizom.

Skladnja:

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

Parametri:

inputstr: niz, ki ga želimo razdeliti.

delimiter: niz iz enega ali več znakov, ki bo uporabljen kot ločilo. Privzeto ločilo je znak ASCII za presledek (" ").

occurrences: največje število vrnjenih podnizov. Privzeta vrednost je 0, kar pomeni, da ni omejitve števila vrnjenih nizov.

quotechar: enojni (') ali dvojni (") narekovaj.

Primer:

V Basicu

    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""", "")
  
V Pythonu

    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""', '')
  
note

Bodite pozorni na razlike med jezikoma Basic in Python pri reprezentaciji nizov. Primer: v Basicu sta dva znaka "" v nizu interpretirana kot en sam znak ". V Pythonu lahko nizi, zaobjeti z enojnimi narekovaji, vsebujejo znake ", ne da bi jih bilo potrebno podvajati.


StartsWith

Vrne True, če so prvi znaki niza identični podanemu podnizu.

Ta metoda vrne False, če imata vhodni niz ali podniz dolžino = 0 ali če je podniz daljši od vhodnega niza.

Skladnja:

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

Parametri:

inputstr: niz, ki bo preverjen.

substring: podniz, ki bo iskan na začetku niza inputstr.

casesensitive: pri iskanju lahko velja razlika med velikimi in malimi črkami ali ne (privzeta vrednost je False).

Primer:


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

TrimExt

Vrne vhodni niz brez vodilnih in sledilnih presledkov.

Skladnja:

svc.TrimExt(inputstr: str): str

Parametri:

inputstr: niz, ki bo obrezan.

Primer:


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

Unescape

Pretvori poljubno ubežno zaporedje (\\, \n, \r, \t) v vhodnem nizu v njegov ustrezni znak ASCII.

Skladnja:

svc.Unescape(inputstr: str): str

Parametri:

inputstr: niz, ki bo pretvorjen.

Primer:


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

Unquote

Odstrani enojne ali dvojne narekovaje, v katerih je morda vhodni niz.

To je uporabno, ko razčlenjujete zapise, podobne CSV, ki vsebujejo citiranim nizom.

Skladnja:

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

Parametri:

inputstr: niz, kateremu bodo odstranjeni narekovaji.

quotechar: enojni (') ali dvojni (") narekovaj (privzeto).

Primer:


    Dim s as String
    ' s = "Nekaj besedila" (brez narekovajev)
    s = SF_String.Unquote("""Some text""")
    ' Spodnji niz ni podan v narekovajih, zato ostane nespremenjen
    ' s = "Nekaj besedila" (nespremenjeno)
    s = SF_String.Unquote("Some text")
    ' Narekovaji znotraj niza se ne odstranijo
    ' s = "Tisti ""pravi"" pomen" (nespremenjeno)
    s = SF_String.Unquote("The ""true"" meaning")
  

Wrap

Pretvori vhodni niz v polje podnizov, tako da ima vsak element polja največ toliko znakov, kot je bilo podano.

V praksi ta metoda vrne prazno polje izhodnih vrstic brez oznak novih vrstic na koncu, razen prej obstoječih prelomov vrstic.

Tabulatorji se razširijo po enakem postopku kot z metodo ExpandTabs.

Simbolične prelome vrstic zamenja z njihovimi ekvivalentnimi znaki ASCII.

Če oviti izhod nima vsebine, je vrnjeno polje prazno.

Skladnja:

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

Parametri:

inputstr: niz za ovijanje.

width: največje število znakov v vsaki vrstici (privzeta vrednost je 70).

tabsize: pred ovijanjem besedila so obstoječi tabulatorski znaki Chr(9) zamenjani s presledki. TabSize določa položaj tabulatorskih mest po formuli TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (privzeta vrednost je 8).

Primer:

V Basicu

    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...")
  
V Pythonu

    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...')
  
warning

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic ali skriptih Python niso namenjeni.


Podprite nas!