ScriptForge.String tjeneste

Tjenesten String gir en samling metoder for strengbehandling. Disse metodene kan brukes til Ă„:

Definisjoner

Linjebrytninger

Tjenesten String gjenkjenner fĂžlgende linjeskift:

Symbolsk navn

ASCII-nummer

Linjemating
Vertikal fane
Vognretur
Vognretur + Linjemating
Filseparator
Gruppeseperator
Post-skilletegn
Neste linje
Linjeseparator
Avsnittsseparator

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


Mellomrom

Tjenesten String gjenkjenner fĂžlgende mellomrom:

Symbolsk navn

ASCII nummer

Mellomrom
Horisontal fane
Linjemating
Vertikal fane
Skjemamating
Vognretur
Neste linje
Mellomrom uten pause
Linje Skilletegn
Avsnittsskilletegn

32
9
10
11
12
13
133
160
8232
8233


Escape-sekvenser

Nedenfor er en liste over escape-sekvenser som kan brukes i strenger.

Escape-sekvenser

Symbolsk navn

ASCII nummer

\n
\r
\t

Linjemating
Vognretur
Horisontal fane

10
13
9


tip

For Ä fÄ escape-sekvensen "\n" tolket som en faktisk streng, bruk bare "\\n" i stedet for "\" & Chr(10).


Ikke-utskrivbare tegn:

Tegn definert i Unicode Character Database som "Annet" eller "Separator" anses som ikke-utskrivbare tegn.

Kontrolltegn (ASCII-kode <= 0x1F) anses ogsÄ som ikke-utskrivbare.

Sitater i strenger:

For Ă„ legge til anfĂžrselstegn i strenger, bruk \' (enkelt anfĂžrselstegn) eller \" (dobbelt anfĂžrselstegn). For eksempel:

TjenestepÄkallelse

FÞr du bruker ScriptForge.String-tjenesten, mÄ ScriptForge-biblioteket lastes ved Ä bruke:

I Basic

      GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
  

NÄr du laster inn biblioteket, opprettes SF_String-objektet som kan brukes til Ä kalle metodene i Streng-tjenesten.

FÞlgende kodebiter viser de tre mÄtene Ä kalle metoder fra Streng-tjenesten (metoden Capitalize brukes som et eksempel):


    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
  
I Python

Kodebiten nedenfor illustrerer hvordan du pÄkaller metoder fra Streng-tjenesten i Python-skript. Metoden IsIPv4 brukes som et eksempel.


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

Egenskaper

Objektet SF_String gir fĂžlgende egenskaper for Basic skript:

Navn

Skrivebeskyttet

Beskrivelse

sfCR

Ja

Vognretur: Kar(13)

sfCRLF

Ja

Vognretur + linjemating: Kar(13) & Kar(10)

sfLF

Ja

Linjemating: Kar(10)

sfNEWLINE

Ja

Carriage return + Linefeed, som kan vĂŠre
1) Kar(13) & Kar(10) eller
2) Linjemating: Kar(10)
avhengig av operativsystemet.

sfTAB

Ja

Horisontal tabulering: Chr(9)


tip

Du kan bruke egenskapene ovenfor til Ă„ identifisere eller sette inn de tilsvarende tegnene i strenger. Linjematningen kan for eksempel erstattes av SF_String.sfLF.


Liste over metoder i strengtjenesten

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

Det fĂžrste argumentet for de fleste metoder er strengen som skal vurderes. Det sendes alltid ved referanse og forblir uendret. Metoder som Capitalize , Escape osv. returnerer en ny streng etter at de er utfĂžrt.


warning

Fordi Python har omfattende innebygd strengstĂžtte, er de fleste metodene i String-tjenesten kun tilgjengelig for Basic skript. Metodene som er tilgjengelige for Basic og Python er: HashStr, IsADate, IsEmail, IsFileName, IsIBAN, IsIPv4, IsLike, IsSheetName, IsUrl, SplitNotQuoted og Wrap.


Capitalize

Bruker stor bokstav til det fĂžrste tegnet fra hvert ord i inndatastrengen.

Syntaks:

svc.Capitalize(inputstr: str): str

Parametre:

inputstr: Strengen som skal skrives med store bokstaver.

Eksempel:


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

Count

Teller antall forekomster av en delstreng eller et regulĂŠrt uttrykk i en streng.

Syntaks:

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

Parametre:

inputstr: Inndatastrengen som skal undersĂžkes

understreng: Understrengen eller det regulĂŠre uttrykket som skal brukes under sĂžk

isregex: Bruk True hvis delstrengen er et regulĂŠrt uttrykk (Standard = Usann)

scase-sensitive: SÞket kan skille mellom store og smÄ bokstaver eller ikke (Standard = Usann).

Eksempel:


    'Teller forekomstene av understrengen "eller" inne i inndatastrengen (retur 2)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "or", CaseSensitive := False)
    'Teller antall ord med bare smÄ bokstaver (gir 7)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", IsRegex := True, CaseSensitive := True)
  
tip

For Ä lÊre mer om regulÊre uttrykk, se Python-dokumentasjonen pÄ RegulÊre uttrykksoperasjoner .


EndsWith

Returnerer True hvis en streng slutter med en spesifisert delstreng.

Funksjonen returnerer False nÄr enten strengen eller delstrengen har en lengde = 0 eller nÄr delstrengen er lengre enn strengen.

Syntaks:

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

Parametre:

inputstr: Strengen som skal testes.

understreng: Understrengen som skal sÞkes i pÄ slutten av inputstr.

case-sensitive: SÞket kan skille mellom store og smÄ bokstaver eller ikke (Standard = Usann).

Eksempel:


    'Returnerer Sann fordi metoden ble anropt med standard CaseSensitive = Usann
    MsgBox SF_String.EndsWith("abcdefg", "EFG")
    'Returnerer Usann pÄ grunn av parameteren CaseSensitive
    MsgBox SF_String.EndsWith("abcdefg", "EFG", CaseSensitive := True)
  

Escape

Konverterer linjeskift og tabulatorer i inndatastrengen til deres ekvivalente escapede sekvens (\\, \n, \r, \t).

Syntaks:

svc.Escape(inputstr: str): str

Parametre:

inputstr: Strengen som skal konverteres.

Eksempel:


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

ExpandTabs

Erstatter tabulatortegn Chr(9) med mellomrom for Ă„ gjenskape oppfĂžrselen til tabulatorstopp.

Hvis et linjeskift blir funnet, startes en ny linje og tegntelleren tilbakestilles.

Syntaks:

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

Parametre:

inputstr: Strengen som skal utvides

tabstĂžrrelse: Denne parameteren brukes til Ă„ bestemme tabulatorstoppene ved Ă„ bruke formelen: TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (Standard = 8)

Eksempel:


    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

Erstatter alle ikke-utskrivbare tegn i inndatastrengen med et gitt tegn.

Syntaks:

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

Parametre:

inputstr: Strengen som skal sĂžkes i

erstattet av: Null, ett eller flere tegn som vil erstatte alle ikke-utskrivbare tegn i inputstr (Standard = "")

Eksempel:


    Dim LF : LF = Chr(10)
    Dim myText as String
    myText = "Ă Ă©n ÎŁlP”" & LF & " РуссĐșĐžĐč" & "\n"
    MsgBox SF_String.FilterNotPrintable(myText)
    ' "Ă Ă©n ÎŁlP” РуссĐșĐžĐč\n"
  

FindRegex

Finner i en streng en delstreng som samsvarer med et gitt regulĂŠrt uttrykk.

Syntaks:

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

Parametre:

inputstr: Strengen som det skal sĂžkes i

regex: Det regulĂŠre uttrykket

start: Posisjonen i strengen der sÞket vil begynne. Denne parameteren sendes ved referanse, sÄ etter kjÞring vil verdien av start peke til det fÞrste tegnet i den funnet understrengen. Hvis ingen samsvarende understreng blir funnet, settes start til 0.

case-sensitive: SÞket kan skille mellom store og smÄ bokstaver eller ikke (Standard = Usann).

fremover: Bestemmer retningen for sÞket. Hvis Sann, gÄr sÞket fremover. Hvis Usann sÞk beveger seg bakover (Standard = Sann)

Ved fÞrste iterasjon, hvis fremover = Sant, sÄ skal start vÊre lik 1, mens hvis ffremover = Usant sÄ start skal vÊre lik Len(inputstr)

Eksempel:


    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

I eksemplet ovenfor kan den nye verdien til lStart brukes til Ă„ fortsette Ă„ sĂžke i den samme inndatastrengen ved Ă„ sette parameteren Start til lStart + Len(result) ved neste iterasjon.


HashStr

Hash-funksjoner brukes i enkelte kryptografiske algoritmer, i digitale signaturer, meldingsautentiseringskoder, manipulasjonsdeteksjon, fingeravtrykk, sjekksum (meldingsintegritetssjekk), hashtabeller, passordlagring og mye mer.

Metoden HashStr returnerer resultatet av en hash-funksjon brukt pÄ en gitt streng og bruker en spesifisert algoritme, som en streng med smÄ heksadesimale sifre.

Hash-algoritmene som stĂžttes er: MD5, SHA1, SHA224, SHA256, SHA384 og SHA512.

Syntaks:

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

Parametre:

inputstr: Strengen som skal hash. Det antas Ă„ vĂŠre kodet i UTF-8. Hashing-algoritmen vil vurdere strengen som en bytestrĂžm.

algoritme: En av de stĂžttede algoritmene som er oppfĂžrt ovenfor, sendt som en streng.

Eksempel:

I Basic

    MsgBox SF_String.HashStr("Ć“âˆ‘ÂĄâ„ąÂŁÂąâˆžÂ§Â¶â€ąÂȘÂșâ€“â‰ Ć“âˆ‘ÂŽÂźâ€ Â„ÂšË†ĂžÏ€â€˜Ă„ĂŸâˆ‚Æ’Â©Ë™âˆ†ËšÂŹ", "MD5")
    ' c740ccc2e201df4b2e2b4aa086f35d8a
  
I Python

    svc = CreateScriptService("String")
    bas = CreateScriptService("Basic")
    a_string = "Ć“âˆ‘ÂĄâ„ąÂŁÂąâˆžÂ§Â¶â€ąÂȘÂșâ€“â‰ Ć“âˆ‘ÂŽÂźâ€ Â„ÂšË†ĂžÏ€â€˜Ă„ĂŸâˆ‚Æ’Â©Ë™âˆ†ËšÂŹ"
    hash_value = svc.HashStr(a_string, "MD5")
    bas.MsgBox(hash_value)
    # c740ccc2e201df4b2e2b4aa086f35d8a
  

HtmlEncode

Koder inn inndatastrengen inn i HTML-tegnkodene, og erstatter spesialtegn med & motparter.

For eksempel vil tegnet Ă© erstattes av &eacute; eller en tilsvarende numerisk HTML-kode.

Syntaks:

svc.HtmlEncode(inputstr: str): str

Parametre:

inputstr: Strengen som skal kodes.

Eksempel:


    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

Returnerer True hvis inndatastrengen er en gyldig dato i henhold til et spesifisert datoformat.

Syntaks:

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

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann

datoformat: Datoformatet, som en streng. Det kan vére enten "ÅÅÅÅ-MM-DD" (standard), "DD-MM-ÅÅÅÅ" eller "MM-DD-ÅÅÅÅ"

Bindestreken (-) kan erstattes av en prikk (.), en skrÄstrek (/) eller et mellomrom.

Hvis formatet er ugyldig, returnerer metoden Usann.

Eksempel:

I Basic

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

Denne metoden sjekker formatet til inndatastrengen uten Ä utfÞre noen kalenderspesifikke kontroller. Derfor tester den ikke inndatastrengen for skuddÄr eller mÄneder med 30 eller 31 dager. For det, se IsDate innebygd funksjon.


Eksemplet nedenfor viser forskjellen mellom metodene IsADate (ScriptForge) og IsDate (innebygd) funksjonen.


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

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

IsAlpha

Returnerer Sann hvis alle tegnene i strengen er alfabetiske.

Alfabetiske tegn er de tegnene som er definert i Unicode Character Database som Letter.

Syntaks:

svc.IsAlpha(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:


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

IsAlphaNum

Returnerer True hvis alle tegnene i strengen er alfabetiske, sifre eller "_" (understreking). Det fÞrste tegnet mÄ ikke vÊre et siffer.

Syntaks:

svc.IsAlphaNum(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:


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

IsAscii

Returnerer Sann hvis alle tegnene i strengen er ASCII-tegn.

Syntaks:

svc.IsAscii(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:


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

IsDigit

Returnerer Usann hvis alle tegnene i strengen er sifre.

Syntaks:

svc.IsDigit(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:


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

IsEmail

Returnerer Sann hvis strengen er en gyldig e-postadresse.

Syntaks:

svc.IsEmail(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:

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

Returnerer Sann hvis strengen er et gyldig filnavn i et gitt operativsystem.

Syntaks:

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

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

osname: Operativsystemnavnet, som en streng. Det kan vĂŠre "WINDOWS", "LINUX", "MACOSX" eller "SOLARIS".

Standardverdien er det gjeldende operativsystemet som skriptet kjÞrer pÄ.

Eksempel:

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

Returnerer Sann hvis alle tegnene i strengen er heksadesimale sifre.

Syntaks:

svc.IsHexDigit(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

De heksadesimale sifrene kan settes foran med "0x" eller "&H".

Eksempel:


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

IsIBAN

Returnerer Sann hvis strengen er et gyldig internasjonalt bankkontonummer (IBAN). Sammenligningen skiller ikke mellom store og smÄ bokstaver.

Syntaks:

svc.IsIBAN(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Returverdi:

Sann hvis strengen inneholder et gyldig IBAN-nummer.

Eksempel:


    ' 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

Returnerer Sann hvis strengen er en gyldig IP(v4)-adresse.

Syntaks:

svc.IsIPv4(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:

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

Returnerer Sann hvis hele inndatastrengen samsvarer med et gitt mĂžnster som inneholder jokertegn.

Syntaks:

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

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

mĂžnster: MĂžnsteret som en streng. Jokertegn er:

case-sensitive: SÞket kan skille mellom store og smÄ bokstaver eller ikke (Standard = Usann).

Eksempel:

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

Returnerer Sann hvis alle tegnene i strengen er med smÄ bokstaver. Ikke-alfabetiske tegn ignoreres.

Syntaks:

svc.IsLower(inputstr: str): bool

Parametre:

InputStr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:


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

IsPrintable

Returnerer Sann hvis alle tegnene i strengen kan skrives ut.

Syntaks:

svc.IsPrintable(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:


    MsgBox SF_String.IsPrintable("Ă Ă©n ÎŁlP” РуссĐșĐžĐč") ' True
    MsgBox SF_String.IsPrintable("First line." & Chr(10) & "Second Line.") ' False
  

IsRegex

Returnerer Sann hvis hele inndatastrengen samsvarer med et gitt regulĂŠrt uttrykk.

Syntaks:

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

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Sann.

regex: Det regulĂŠre uttrykket. Hvis tom, returnerer metoden Usann.

store-sensitive: SÞket kan skille mellom store og smÄ bokstaver eller ikke (Standard = Usann).

Eksempel:


        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

Returnerer True hvis inndatastrengen er et gyldig Calc-arknavn.

Syntaks:

svc.IsSheetName(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:

I Basic

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

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

Et arknavn mÄ ikke inneholde tegnene [ ] * ? : / \ eller tegnet ' (apostrof) som fÞrste eller siste tegn.


IsTitle

Returnerer Sann hvis det fÞrste tegnet i hvert ord er med store bokstaver og de andre tegnene med smÄ bokstaver.

Syntaks:

svc.IsTitle(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:


    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

Returnerer Sann hvis alle tegn i strengen er med store bokstaver. Ikke-alfabetiske tegn ignoreres.

Syntaks:

svc.IsUpper(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:


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

IsUrl

Returnerer Sann hvis strengen er en gyldig absolutt URL-adresse (Uniform Resource Locator). Bare http-, https- og ftp-protokollene stĂžttes.

Syntaks:

svc.IsUrl(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:

I Basic

    MsgBox SF_String.IsUrl("http://foo.bar/?q=Test%20URL-encoded%20stuff") ' True
    MsgBox SF_String.IsUrl("www.somesite.org") ' False
  
I 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

Returnerer Sann hvis alle tegnene i strengen er mellomrom

Syntaks:

svc.IsWhitespace(inputstr: str): bool

Parametre:

inputstr: Strengen som skal sjekkes. Hvis tom, returnerer metoden Usann.

Eksempel:


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

JustifyCenter

Returnerer inndatastrengen senterjustert.

De innledende og etterfĂžlgende mellomrommene fjernes og de resterende tegnene fylles ut til venstre og hĂžyre opp til en spesifisert totallengde med tegnet utfylling.

Syntaks:

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

Parametre:

inputstr: Strengen som skal senterjusteres. Hvis tom, returnerer metoden en tom streng.

lengde: Lengden pÄ den resulterende strengen (standard = lengden pÄ inndatastrengen).

Hvis den angitte lengden er kortere enn den senterjusterte inndatastrengen, avkortes den returnerte strengen.

utfylling: Enkelttegn som skal brukes som utfylling (standard = ASCII-mellomrommet " ").

Eksempel:


    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

Returnerer inndatastrengen venstrejustert.

De innledende mellomrommene fjernes og de resterende tegnene fylles ut til hĂžyre opp til en spesifisert total lengde med tegnet utfylling.

Syntaks:

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

Parametre:

inputstr: Strengen som skal venstrejusteres. Hvis tom, returnerer metoden en tom streng.

lengde: Lengden pÄ den resulterende strengen (standard = lengden pÄ inndatastrengen).

Hvis den angitte lengden er kortere enn den venstrejusterte inngangsstrengen, avkortes den returnerte strengen.

utfylling: Enkelttegn som skal brukes som utfylling (standard = ASCII-mellomrommet " ").

Eksempel:


    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

Returnerer inndatastrengen hĂžyrejustert.

De innledende hvite mellomrommene fjernes og de resterende tegnene fylles ut til venstre opp til en spesifisert total lengde med tegnet utfylling.

Syntaks:

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

Parametre:

inputstr: Strengen som skal hĂžyrejusteres. Hvis tom, returnerer metoden en tom streng.

lengde: Lengden pÄ den resulterende strengen (standard = lengden pÄ inndatastrengen).

Hvis den angitte lengden er kortere enn den hĂžyrejusterte inndatastrengen, avkortes den returnerte strengen.

utfylling: Enkelttegn som skal brukes som utfylling (standard = ASCII-mellomrommet " ").

Eksempel:


    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

Returnerer inndatastrengen omsluttet av enkle eller doble anfĂžrselstegn. Eksisterende sitater er uendret, inkludert ledende og/eller etterfĂžlgende sitater.

Syntaks:

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

Parametre:

inputstr: Strengen som skal siteres.

quotechar: Enten enkelt (') eller dobbel (") anfĂžrselstegn (standard).

Eksempel:


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

Denne metoden kan vÊre nyttig nÄr du forbereder et strengfelt som skal lagres i en csv-lignende fil, som krever at tekstverdier omsluttes av enkle eller doble anfÞrselstegn.


ReplaceChar

Erstatter alle forekomster av tegnene spesifisert i FĂžr-parameteren med de tilsvarende tegnene spesifisert i Etter.

Hvis lengden pÄ FÞr er stÞrre enn lengden pÄ Etter, erstattes gjenvÊrende tegn i FÞr med det siste tegnet i Etter .

Syntaks:

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

Parametre:

inputstr: Inndatastrengen som erstatninger vil finne sted pÄ.

fĂžr: En streng med tegnene som vil bli sĂžkt i inndatastrengen for erstatning.

etter: En streng med de nye tegnene som vil erstatte de som er definert i fĂžr.

Eksempel:


    ' Erstatter aksenttegn
    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"
  

Tjenesten SF_String gir nyttige offentlige konstanter for de latinske tegnsettene, som vist i eksemplet nedenfor:


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

ReplaceRegex

Erstatter alle forekomster av et gitt regulĂŠrt uttrykk med en ny streng.

Syntaks:

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

Parametre:

inputstr: Inndatastrengen som erstatninger vil finne sted pÄ.

regex: Det regulĂŠre uttrykket.

newstr: Den erstattende strengen.

store-sensitive: SÞket kan skille mellom store og smÄ bokstaver eller ikke (Standard = Usann).

Eksempel:


    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." (hver liten bokstav erstattes med "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." (hvert ord er erstattet med "x")
  

ReplaceStr

Erstatter i en streng noen eller alle forekomster av en rekke strenger med en rekke nye strenger.

Syntaks:

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

Parametre:

inputstr: Inndatastrengen som erstatninger vil bli brukt pÄ.

oldstr: En enkelt streng eller en rekke strenger. Strenger med null lengde ignoreres.

newstr: Den erstattende strengen eller utvalget av erstattende strenger.

Hvis oldstr er en matrise, erstattes hver forekomst av noen av elementene i oldstr med newstr.

Hvis oldstr og newstr er arrays, skjer erstatninger én etter én opp til UBound(newstr).

Hvis oldstr har flere oppfĂžringer enn newstr, erstattes restelementene i oldstr med det siste elementet i newstr .

forekomster: Maksimalt antall erstatninger. Standardverdien er 0, noe som betyr at alle forekomster vil bli erstattet.

NÄr oldstr er en matrise, beregnes parameteren occurrence separat for hvert element i matrisen.

case-sensitive: SÞket kan skille mellom store og smÄ bokstaver eller ikke (Standard = Usann).

Eksempel:


    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

Returnerer en streng med en lesbar representasjon av argumentet, avkortet i en gitt lengde. Dette er nyttig hovedsakelig for feilsĂžking eller logging.

Hvis anyvalue-parameteren er et objekt, vil den vĂŠre omgitt av hakeparenteser "[" og "]".

I strenger erstattes tabulatorer og linjeskift med \t, \n eller \r.

Hvis den endelige lengden overskrider maxlength-parameteren, erstattes den siste delen av strengen med " ... (N)" der N er den totale lengden pÄ den opprinnelige strengen fÞr avkortning.

Syntaks:

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

Parametre:

anyvalue: Inndataverdien som skal representeres. Det kan vĂŠre en hvilken som helst verdi, for eksempel en streng, en matrise, et Basic-objekt, et UNO-objekt, etc.

maxlength: Den maksimale lengden pÄ den resulterende strengen. Standardverdien er 0, noe som betyr at det ikke er noen grense for lengden pÄ den resulterende representasjonen.

Eksempel:


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

Merk at representasjonen av datatyper som Arrays og ScriptForge.Dictionary objektforekomster inkluderer bÄde datatypen og deres verdier:


    ' Et eksempel med en grunnleggende innebygd matrise
    MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
    ' "[ARRAY] (0:2) (1, 2, Text\there)"
    ' Et eksempel med en ScriptForge Matrise
    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)"
    Et eksempel med en ScriptForge-ordbok
    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

Returnerer inndatastrengen i omvendt rekkefĂžlge.

Denne metoden tilsvarer den innebygde StrReverse Basic-funksjonen.

note

For Ä bruke StrReverse-funksjonen, mÄ uttrykket Alternativ VBASupport 1 vÊre til stede i modulen.


Syntaks:

svc.Reverse(inputstr: str): str

Parametre:

inputstr: Strengen som skal reverseres.

Eksempel:


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

SplitLines

Returnerer en nullbasert matrise med strenger med linjene i inndatastrengen. Hvert element i matrisen oppnÄs ved Ä splitte inndatastrengen ved nye linjetegn.

Syntaks:

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

Parametre:

inputstr: Strengen som skal deles.

keepbreaks: NÄr Sann, blir linjeskift bevart i utdatamatrisen (standard = Usann).

Eksempel:


    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

Deler en streng i en rekke elementer ved hjelp av et spesifisert skilletegn.

Hvis en delstreng i anfÞrselstegn inneholder et skilletegn, ignoreres den. Dette er nyttig nÄr du analyserer CSV-lignende poster som inneholder anfÞrselstegn.

Syntaks:

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

Parametre:

inputstr: Strengen som skal deles.

skilletegn: En streng med ett eller flere tegn som skal brukes som skilletegn. Standard avgrensningstegn er ASCII-mellomrom " ".

forekomster: Maksimalt antall understrenger som skal returneres. Standardverdien er 0, noe som betyr at det ikke er noen grense for antall returnerte strenger.

quotechar: Enten enkelt (') eller dobbel (") anfĂžrselstegn.

Eksempel:

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

VÊr oppmerksom pÄ forskjellene mellom Basic og Python nÄr du representerer strenger. For eksempel, i Basic tolkes to ""-tegn inne i en streng som et enkelt "-tegn. I Python kan strenger omsluttet av enkle anfÞrselstegn inneholde "-tegn uten Ä mÄtte doble dem.


StartsWith

Returnerer True hvis de fĂžrste tegnene i en streng er identiske med en gitt delstreng.

Denne metoden returnerer False hvis enten inndatastrengen eller delstrengen har en lengde = 0 eller nÄr delstrengen er lengre enn inndatastrengen.

Syntaks:

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

Parametre:

inputstr: Strengen som skal testes.

understreng: Understrengen som skal sĂžkes i ved starten av inputstr.

store-sensitive: SÞket kan skille mellom store og smÄ bokstaver eller ikke (Standard = Usann).

Eksempel:


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

TrimExt

Returnerer inndatastrengen uten innledende og etterfĂžlgende mellomrom.

Syntaks:

svc.TrimExt(inputstr: str): str

Parametre:

inputstr: Strengen som skal trimmes.

Eksempel:


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

Unescape

Konverterer enhver escaped sekvens (\\, \n, \r, \t) i inndatastrengen til deres tilsvarende ASCII-tegn.

Syntaks:

svc.Unescape(inputstr: str): str

Parametre:

inputstr: Strengen som skal konverteres.

Eksempel:


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

Unquote

Fjerner de enkle eller doble anfĂžrselstegnene som omslutter inndatastrengen.

Dette er nyttig nÄr du analyserer CSV-lignende poster som inneholder anfÞrselstegn.

Syntaks:

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

Parametre:

inputstr: Strengen som skal fjernes fra anfĂžrselstegn.

quotechar: Enten enkelt (') eller dobbel (") anfĂžrselstegn (standard).

Eksempel:


    Dim s as String
    ' s = "Noe tekst" (uten anfĂžrselstegn)
    s = SF_String.Unquote("""Some text""")
    ' Strengen nedenfor har ikke omsluttende anfÞrselstegn, sÄ den forblir uendret
    ' s = "Noe tekst" (uendret)
    s = SF_String.Unquote("Some text")
    ' Sitater inne i strengen fjernes ikke
    ' s = "Den "sanne"" betydningen" (uendret)
    s = SF_String.Unquote("The ""true"" meaning")
  

Wrap

Konverterer inndatastrengen til en matrise med delstrenger slik at hvert element i matrisen maksimalt har et gitt antall tegn.

I praksis returnerer denne metoden et nullbasert utvalg av utgangslinjer, uten nye linjer pÄ slutten, bortsett fra de allerede eksisterende linjeskiftene.

Faner utvides med samme prosedyre som utfĂžres av Ekspander Fliker-metoden.

Symbolske linjeskift erstattes av tilsvarende ASCII-tegn.

Hvis den pakkede utgangen ikke har noe innhold, er den returnerte matrisen tom.

Syntaks:

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

Parametre:

inputstr: Strengen som skal brytes.

bredde: Maksimalt antall tegn i hver linje (standard = 70).

tabsize: FĂžr teksten brytes, erstattes de eksisterende TAB Chr(9)-tegnene med mellomrom. Argumentet tabsize definerer TAB-stoppene ved TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (Standard = 8).

Eksempel:

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

Alle ScriptForge Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment Ă„ brukes i grunnleggende makroer eller Python-skript.