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 v novo vrstico + prehod na začetek vrstice
Ločilo datotek
Ločilo skupin
Ločilo zapisov
Naslednja vrstica
Ločilo vrstic
Ločilo odstavkov

10
12
13
10 + 13
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:


      GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
  

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


        SF_String.ExpandTabs(...)
    

        Dim s : s = SF_String
        s.ExpandTabs(...)
    

        Dim s : s = CreateScriptService("String")
        s.ExpandTabs(...)
    

Lastnosti

Predmet SF_String zagotavlja naslednje lastnosti:

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.


List of Methods in the String Service

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.


Capitalize

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

Skladnja:


       SF_String.Capitalize(InputStr As String) As String
     

Parametri:

InputStr: niz, katerega besede bo 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:


        SF_String.Count(InputStr As String, Substring As String[, IsRegex As Boolean][, CaseSensitive As Boolean]) As Long
      

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: določa, ali naj velja razlika med velikimi in malimi črkami, privzeto = False (privzeto torej ne velja).

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:


       SF_String.EndsWith(InputStr As String, Substring As String[, CaseSensitive As Boolean]) As Boolean
     

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 (privzeto = 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:


          SF_String.Escape(InputStr As String) As String
      

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:


        SF_String.ExpandTabs(InputStr As String[, TabSize As Integer]) As String
      

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:


        SF_String.FilterNotPrintable(InputStr As String[, ReplacedBy As String]) As String
      

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:


        SF_String.FindRegex(InputStr As String, Regex As String[, Start As Long[, CaseSensitive As Boolean[, Forward As Boolean]]]) As String
      

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: določa, ali naj velja razlika med velikimi in malimi črkami, privzeto = False (privzeto torej ne velja).

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

Pri prvi iteraciji mora biti, če je Forward = True, 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:


          SF_String.HashStr(InputStr As String, Algorithm As String) As String
      

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:


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


        SF_String.HtmlEncode(InputStr) As String
      

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:


        SF_String.IsADate(InputStr As String[, DateFormat As String]) As Boolean
      

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:


        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
  

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:


        SF_String.IsAlpha(InputStr As String) As Boolean
      

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:


        SF_String.IsAlphaNum(InputStr As String) As Boolean
      

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:


        SF_String.IsAscii(InputStr As String) As Boolean
      

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:


        SF_String.IsDigit(InputStr As String) As Boolean
      

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:


        SF_String.IsEmail(InputStr As String) As Boolean
      

Parametri:

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

Primer:


        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
      

IsFileName

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

Skladnja:


        SF_String.IsFileName(InputStr As String[, OSName As String]) As Boolean
      

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:


        MsgBox SF_String.IsFileName("~/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
      

IsHexDigit

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

Skladnja:


        SF_String.IsHexDigit(InputStr As String) As Boolean
      

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.

note

Ta metoda je na voljo od LibreOffice 7.2 naprej.


Skladnja:


        SF_String.IsIBAN(InputStr As String) As Boolean
      

Parametri:

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

Vrnjena vrednost:

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

Primer:


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

IsIPv4

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

Skladnja:


        SF_String.IsIPv4(InputStr As String) As Boolean
      

Parametri:

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

Primer:


        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
      

IsLike

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

Skladnja:


        SF_String.IsLike(InputStr As String, Pattern As String[, CaseSensitive As Boolean) As Boolean
      

Parametri:

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

Pattern: vzorec kot niz. Nadomestna znaka sta:

CaseSensitive: določa, ali naj velja razlika med velikimi in malimi črkami, privzeto = False (privzeto torej ne velja).

Primer:


        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
      

IsLower

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

Skladnja:


        SF_String.IsLower(InputStr As String) As Boolean
      

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:


        SF_String.IsPrintable(InputStr As String) As Boolean
      

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:


        SF_String.IsRegex(InputStr As String, Regex As String[, CaseSensitive As Boolean) As Boolean
      

Parametri:

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

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

CaseSensitive: določa, ali naj velja razlika med velikimi in malimi črkami, privzeto = False (privzeto torej ne velja).

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:


          SF_String.IsSheetName(InputStr As String) As Boolean
      

Parametri:

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

Primer:


          MsgBox SF_String.IsSheetName("1àbc + ""déf""") 'True
          MsgBox SF_String.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:


        SF_String.IsTitle(InputStr As String) As Boolean
      

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:


        SF_String.IsUpper(InputStr As String) As Boolean
      

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:


        SF_String.IsUrl(InputStr As String) As Boolean
      

Parametri:

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

Primer:


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

IsWhitespace

Vrne True, če so vsi znaki niza presledki.

Skladnja:


        SF_String.IsWhitespace(InputStr As String) As Boolean
      

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:


        SF_String.JustifyCenter(InputStr As String[, Length As Long[, Padding As String]]) As String
      

Parametri:

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

Length: dolžina izhodnega niza (privzeto = 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 (privzeto = presledek ASCII " ").

Primer:


        MsgBox SF_String.JustifyCenter("Title", Length := 11) ' "   Title   "
        MsgBox SF_String.JustifyCenter("    ABCDE", 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:


        SF_String.JustifyLeft(InputStr As String[, Length As Long[, Padding As String]]) As String
      

Parametri:

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

Length: dolžina izhodnega niza (privzeto = 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 (privzeto = presledek ASCII " ").

Primer:


        MsgBox SF_String.JustifyLeft("Title", Length := 10) ' "Title     "
        MsgBox SF_String.JustifyLeft("    ABCDE", 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:


        SF_String.JustifyRight(InputStr As String[, Length As Long[, Padding As String]]) As String
      

Parametri:

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

Length: dolžina izhodnega niza (privzeto = 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 (privzeto = presledek ASCII " ").

Primer:


        MsgBox SF_String.JustifyRight("Title", Length := 10) ' "     Title"
        MsgBox SF_String.JustifyRight("  ABCDE  ", 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:


        SF_String.Quote(InputStr As String, [QuoteChar As String]) As String
      

Parametri:

InputStr: niz, ki bo odet v oklepaje.

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

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:


        SF_String.ReplaceChar(InputStr As String, Before As String, After As String) As String
      

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:


        SF_String.ReplaceRegex(InputStr As String, Regex As String, NewStr As String[, CaseSensitive As Boolean]) As String
      

Parametri:

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

Regex: regularni izraz.

NewStr: nadomestni niz.

CaseSensitive: določa, ali naj velja razlika med velikimi in malimi črkami, privzeto = False (privzeto torej ne velja).

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:


        SF_String.ReplaceStr(InputStr As String, OldStr As Variant, NewStr As Variant[, Occurrences As Long[, CaseSensitive As Boolean]]) As String
      

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: določa, ali naj velja razlika med velikimi in malimi črkami, privzeto = False (privzeto torej ne velja).

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:


        SF_String.Represent(AnyValue As Variant[, MaxLength As Long]) As String
      

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, vendar z izboljšanim delovanjem.

note

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


Skladnja:


        SF_String.Reverse(InputStr As String) As String
      

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:


        SF_String.SplitLines(InputStr As String[, KeepBreaks As Long]) As Variant
      

Parametri:

InputStr: niz, ki ga želimo razdeliti.

KeepBreaks: če je True, se prelomi vrstice v izhodnem polju ohranijo (privzeto = 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:


        SF_String.SplitNotQuoted(InputStr As String[, Delimiter As String], [Occurrences As Long], [QuoteChar As String]) As Variant
      

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 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:


        a = SF_String.SplitNotQuoted("abc def ghi")
        ' a = Array("abc", "def", "ghi")
        a = SF_String.SplitNotQuoted("abc,""def,ghi""", ",")
        ' a = Array("abc", """def,ghi""")
        a = SF_String.SplitNotQuoted("abc,""def\"",ghi""", ",")
         ' a = Array("abc", """def\"",ghi""")
        a = SF_String.SplitNotQuoted("abc,""def\"",ghi"""",", ",")
        ' a = Array("abc", """def\"",ghi""", "")
      

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:


        SF_String.StartsWith(InputStr As String, Substring As String[, CaseSensitive As Boolean]) As Boolean
      

Parametri:

InputStr: niz, ki bo preverjen.

Substring: podniz, ki bo iskan na začetku niza InputStr.

CaseSensitive: določa, ali naj velja razlika med velikimi in malimi črkami, privzeto = False (privzeto torej ne velja).

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:


        SF_String.TrimExt(InputStr As String) As String
      

Parametri:

InputStr: niz, ki bo obrezan.

Primer:


        MsgBox SF_String.TrimExt(" Some text.  ") ' "Some text."
        MsgBox SF_String.TrimExt("   ABCDE" & 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:


        SF_String.Unescape(InputStr As String) As String
      

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:


        SF_String.Unquote(InputStr As String, [QuoteChar As String]) As String
      

Parametri:

InputStr: niz, kateremu bodo odstranjeni narekovaji.

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

Primer:


        Dim s as String
        s = SF_String.Unquote("""Nekaj besedila""") ' s = "Nekaj besedila" (brez narekovajev)
        ' The string below does not have enclosing quotes, so it remains unchanged
        s = SF_String.Unquote("Nekaj besedila") ' s = "Nekaj besedila" (nespremenjeno)
        ' Narekovaji znotraj niza se ne odstranijo
        s = SF_String.Unquote("The ""true"" meaning") ' s = "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:


          SF_String.Wrap(InputStr As String, [Width As Long], [TabSize As Integer]) As String
      

Parametri:

InputStr: niz za ovijanje.

Width: največje število znakov v vsaki vrstici (privzeto = 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 (privzeto = 8)

Primer:


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

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


Podprite nas!