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 = Usantstart 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.


Supporter oss!