Tjenesten ScriptForge.String (streng)

Tjenesten String (streng) leverer en samling af metoder til streng-behandling. Disse metoder kan bruges til:

Definitioner

Line breaks (linjeskift)

Tjenesten String (streng) genkender følgende linjeskift:

Symbolic name (Symbolsk navn)

ASCII number (ASCII-nummer)

Line feed
Vertical tab
Carriage return
Carriage return + Line feed
File separator
Group separator
Record separator
Next line
Line separator
Paragraph separator

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


Whitespaces (Hvide rum)

Tjenesten String (streng) genkender disse hvide rum:

Symbolic name (symbolsk navn)

ASCII number (ASCII-nummer)

Mellemrum
Vandret tabulator
Linjeskift
Lodret tabulator
Sideskift
Vognretur
Næste linje
Mellemrum uden ombrydning
Linje-skilletegn
Afsnits-skilletegn

32
9
10
11
12
13
133
160
8232
8233


Escape sequences (Undvigesekvenser)

Herunder ses en liste over undvigesekvenser, der kan bruges i strenge.

Escape Sequence (undvigesekvens)

Symbolic name (symbolsk navn)

ASCII number (ASCII-nummer)

\n
\r
\t

Linjeskift
Vognretur
Vandret tabulator

10
13
9


tip

For at få undvigelsessekvensen "\n" fortolket som som en faktisk streng, bruger du simpelthen "\\n" i stedet for "\" & Chr(10).


Tegn, der ikke kan udskrives:

Tegn, der er i Unicode Character Database er defineret som “Other” (andet) eller “Separator” (skilletegn) anses som tegn, der ikke kan udskrives.

Control characters (ASCII code <= 0x1F) are also considered as non-printable.

Anførselstegn inde i strenge:

Til at tilføje anførselstegn i strenge bruger du \' (enkelt anførselstegn) eller \" (dobbelt anførselstegn). For eksempel:

Kald af tjeneste

Før du bruge tjenesten ScriptForge.String (streng) skal biblioteket ScriptForge være hentet med:

I Basic

      GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
  

Indlæsning af biblioteket vil oprette objektet SF_String, der kan bruges til kalde metoderne i tjenesten String.

De følgende kode-bidder viser de måder at kalde metoder fra tjenesten String (metoden Capitalize (kapitaliser) bruges som 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

Kode-bidden herunder illustrerer, hvordan metoder fra tjenesten String kaldes i Python-scripts. Metoden IsIPv4 bruges som eksempel.


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

Egenskaber

Objektet SF_String giver Basic-scripts følgende egenskaber:

Navn

Skrivebeskyttet

Beskrivelse

sfCR

Yes (ja)

Carriage return (Vognretur): Chr(13)

sfCRLF

Yes (ja)

Carriage return + Linefeed (Vognretur + Linjeskift): Chr(13) & Chr(10)

sfLF

Yes (ja)

Linefeed (linjeskift): Chr(10)

sfNEWLINE

Yes (ja)

Carriage return + Linefeed (vognretur + linjeskift), som kan være
1) Chr(13) & Chr(10) eller
2) Linefeed (linjeskift): Chr(10)
afhængigt af operativsystemet.

sfTAB

Yes (ja)

Horizontal tabulation (vandret tabulator): Chr(9)


tip

Du kan bruge egenskaberne herover til at identificere eller indsætte de tilsvarende tegn i strenge. For eksempel kan tegnet Linjeskift erstattes med SF_String.sfLF.


Liste over metoder i tjenesten Streng

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 argument i de fleste metoder er strengen, der skal behandles. Den overføres altid som henvisning og efterlades uændret. Metoder såsom Capitalize (Skriv med Stort), Escape (Undgå) og så videre returnerer en ny streng efter udførelsen af dem.


warning

Fordi Python har en omfattende, indbygget understøttelse af strenge. De fleste af metoderne i tjenesten String er udelukkende tilgængelige med Basic-scripts. De metoder, der tilgængelige for Basic- og Python er: HashStr, IsADate (er_dato), IsEmail (er_e-mail), IsFileName (er_filnavn), IsIBAN (er_IBAN), IsIPv4 (er_IPv4), IsLike (ligner), IsSheetName (er_arknavn), IsUrl (er_URI), SplitNotQuoted (???) og Wrap (ombryd).


Capitalize

Skriver Første Bogstav Med Stort i hvert ord i input-strengen.

Syntaks:

svc.Capitalize(inputstr: str): str

Parametre:

inputstr: Den streng, der skal skrives med Stort.

Eksempel:


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

Count

Tæller antallet af forekomster af en understreng eller et regulært udtryk inde i en streng.

Syntaks:

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

Parametre:

inputstr: Den input-streng, der skal undersøges

delstreng (understreng): Den delstreng eller det regulære udtryk, der skal bruges under søgningen

isregex (er_regex): Brug True (sand), hvis understrengen er et regulært udtryk ( standard = False (falsk))

Stort-og-småt: Søgningen kan være med Stort-og-småt eller ikke (Standard = False (falsk)) .

Eksempel:


    'Tæller forekomsterne af delstrengen "eller " inde i input-strengen (returnerer 2)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "or", CaseSensitive := False)
    'Tæller antallet af ord med udelukkende små bogstaver (returnerer 7)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", IsRegex := True, CaseSensitive := True)
  
tip

Få mere at vide om regulære udtryk ved at se Pythons dokumentation om Regular Expression Operations.


EndsWith

Returnerer True (sand), hvis en streng slutter med en angiven delstreng.

Funktionen returnerer False (falsk), når enten en streng eller en delstreng har længden = 0 eller når delstrengen er længere end strengen.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal testes.

substring (delstreng): Den delstreng, der søges fra slutningen af inputstr.

Stort-og-småt: Søgningen kan være med Stort-og-småt eller ikke (Standard = False (falsk)) .

Eksempel:


    'Returnerer True, fordi metoden blev kaldt med standarden CaseSensitive (Stort og småt) = False (falsk)
    MsgBox SF_String.EndsWith("abcdefg", "EFG")
    'Returnerer False på grund af parameteren CaseSensitive
    MsgBox SF_String.EndsWith("abcdefg", "EFG", CaseSensitive := True)
  

Escape

Konverterer linjeskift og tabulatorstop, der er indeholdt i input-strengen, til deres tilsvarende undvigelsessekvenser (\\, \n, \r, \t).

Syntaks:

svc.Escape(inputstr: str): str

Parametre:

inputstr: Den streng, der skal konverteres.

Eksempel:


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

ExpandTabs

Erstatter Tabulator-tegn Chr(9) med mellemrum for at gentage tabulatorstoppenes adfærd..

Hvis der findes et linjeskift, startes en ny linje og tegntælleren nulstillles.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal udvides

tabsize (tabulatorafstand): Denne parameter bruges til at bestemme Tabulatorstop med formlen: 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 tegn, der ikke kan udskrives, i input-strengen med et givet tegn.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal søges

replacedby (erstattet af): Intet, et eller flere tegn, der skal erstatte alle tegn, der ikke kan udskrives 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

Finder en delstreng, der matcher et givet regulært udtryk, i en streng.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal søges

regex: Det regulære udtryk

start: Den placering, hvor søgningen skal begynde, Denne parameter videregives som henvisning, således af værdien af start efter udførelsen vil pege på det første tegn af den fundne delstreng, Hvis der ikke findes nogen matchende delstreng, bliver start sat til 0.

Stort-og-småt: Søgningen kan være med Stort-og-småt eller ikke (Standard = False (falsk)) .

forward (fremad): Bestmmer søgningens retning. Når True (sand), bevæger søgningen sig fremad. Hvis False (falsk), bevæger søgningen sig baglæns (Standard = True (sand))

Hvis forward = True (fremad = sand) i den første gentagelse, bør start være lig med 1, men hvis forward = False (fremad = falsk) bør start være lig med Len(inputstr) (længde(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 lStarts nye værdi bruges til at blive ved med at søge i den samme input-streng ved at sætte parameteren Start til lStart + Len(result) (lStart + længde(resultat)) i den næste gentagelse.


HashStr

Hash-funktioner bruges indenfor nogle kryptografiske algoritmer, i digitale signaturer, beskeders autentifikationskoder, afsløring af manipulation, fingeraftrryk, tjeksummer (integritetstjek af beskeder) hash-tabeller, lagring af adgangskoder og meget mere.

Metoden HashStr returnerer resultatet af en hash-funktionen anvendt på en givet streng og med en angiver algoritme, som en streng af hexadecimale cifre med små bogstaver.

De understøttede hash-algoritmer er: MD5, SHA1, SHA224, SHA256, SHA384 and SHA512.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal hashes. den forudsættes at være indkodet i UTF-8. Hashing algoritmen vil betragte strengen som en strøm af bytes.

algoritme: En af de understøttede algoritmer, oplistet ovenfor, videregivet 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

Indkoder input-strengen som HTML-tegnkoder og erstatter specialtegn med deres & modparter.

Tegnet é bliver for eksempel erstattet med &eacute; eller en tilsvarende numerisk HTML-kode.

Syntaks:

svc.HtmlEncode(inputstr: str): str

Parametre:

inputstr: Den streng, der skal indkodes.

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 (sand), hvis input-strengen er en gyldig dato efter et bestemt datoformat.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal tjekkes, Hvis tom, returnerer metoden False (falsk)

datoformat: Datoformatet som en streng. Det kan være enten "YYYY-MM-DD" (Standard), "DD-MM-YYYY" eller "MM-DD-YYYY"

Bindestregen (-) kan erstatttes af et punktum (.), en skråstreg (/) eller et mellemrum.

Hvis formatet er ugyldigt, returnerer metoden False (falsk).

Eksempel:

I Basic

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

Denne metode tjekker input-strengens format uden af udføre nogen kalender-specifikke tjeks. Derfor tester den ikke input-strengen for skudår eller måneder med 30 eller 31 dage. Dertil henvises du til den indbyggede funktion IsDate (er dato).


Eksemplet herunder viser forskellen mellem metoderne IsADate (er en dato) (ScriptForge) og den (indbyggede) funktion IsDate (er dato).


    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 True (sand), hvis alle tegn i strengen er alfabetiske.

Alfabetiske tegn er de tegn, der i Unicode Character Database er defineret som Letter (bogstav).

Syntaks:

svc.IsAlpha(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

Eksempel:


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

IsAlphaNum

Returnerer True (sand), hvis alle tegn i strengen er alfabetiske, cifre eller "_" (understregning). Det første tegn må ikke være et ciffer.

Syntaks:

svc.IsAlphaNum(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

Eksempel:


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

IsAscii

Returns True if all characters in the string are ASCII characters.

Syntaks:

svc.IsAscii(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

Eksempel:


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

IsDigit

Returnerer True (sand), hvis alle tegn i strengen er cifre.

Syntaks:

svc.IsDigit(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

Eksempel:


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

IsEmail

Returnerer True (sand), hvis strengen er en gyldig e-mailadresse.

Syntaks:

svc.IsEmail(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

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 True (sand), hvis strengen er et gyldigt filnavn i et givet operativsystem.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

osnavn: Operativsystemets navn som en streng. Det kan være "WINDOWS", "LINUX", "MACOSX" eller "SOLARIS".

Standardværdien er det aktuelle operativsystem, som scriptet kø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 True (sand), hvis alle tegn i strengen er hexadecimale cifre.

Syntaks:

svc.IsHexDigit(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

De hexadecimale cifre kan have præfixet "0x" eller "&H".

Eksempel:


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

IsIBAN

Returnerer True (sand), hvis strenge er et gyldig Internationalt Bank Account (konto) Nummer (IBAN). Sammenligningen skelner ikke mellem stort og småt.

Syntaks:

svc.IsIBAN(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

Returværdi:

True (sand), hvis strengen indeholder et gyldigt 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 True (sand), hvis strengen er en gyldig IP-adresse (v4).

Syntaks:

svc.IsIPv4(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

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 True (sand), hvis hele input-strengen matcher et givet mønster med jokere.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

mønster: Mønstret som en streng. Jokerne er:

Stort-og-småt: Søgningen kan være med Stort-og-småt eller ikke (Standard = False (falsk)) .

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 True (sand), hvis alle tegn i strengen er små bogstaver. Ikke-alfabetiske tegn ignoreres.

Syntaks:

svc.IsLower(inputstr: str): bool

Parametre:

InputStr: Strengen, der skal tjekkes. hvis tom, returnerer metoden False (falsk).

Eksempel:


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

IsPrintable

Returnerer True (sand), hvis alle tegn i strengen kan udskrives.

Syntaks:

svc.IsPrintable(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

Eksempel:


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

IsRegex

Returnerer True (sand), hvis hele input-strengen matcher et givet regulært udtryk.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

regex: Det regulære udtryk. Hvis tom, returnerer metoden False (falsk).

Stort-og-småt: Søgningen kan være med Stort-og-småt eller ikke (Standard = False (falsk)) .

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 (sand), hvis input-strengen er et gyldigt arknavn i Calc.

Syntaks:

svc.IsSheetName(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

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 indeholder tegnene [ ] * ? : / \ eller tegnet ' (apostrof) som første eller sidste tegn.


IsTitle

Returnerer True (sand), hvis det første tegn i hvert ord er skrevet med Stort og alle andre tegn er små.

Syntaks:

svc.IsTitle(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

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 True (sand), hvis alle bogstaver i strengen er skrevet med Store bogstaver. Ikke-alfabetiske tegn ignoreres.

Syntaks:

svc.IsUpper(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

Eksempel:


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

IsUrl

Returnerer True (sand), hvis strengen er en gyldig absolut URL- (Uniform Resource Locator) -adresse. Kun protokollerne http, https og ftp understøttes.

Syntaks:

svc.IsUrl(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

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 True (sand), hvis alle tegn i strengen er hvide rum

Syntaks:

svc.IsWhitespace(inputstr: str): bool

Parametre:

inputstr: Den streng, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

Eksempel:


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

JustifyCenter

Returnerer input-strengen centreret.

De indledende og afsluttende hvide mellemrum fjernes og de resterende tegn udfyldes til venste og højre op til den angivne samlede length (længde) med padding polstringstegnet.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal centreres. Hvis tom, returnerer metoden en tom streng.

length (længde): Længden på den resulterende streng (standard =længden på input-strengen).

Hvis den angivne længde er kortere den centrerede input-streng, afkortes den returnerede streng.

padding: The single character to be used as padding (default = the ASCII space " ").

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 input-strengen venstrejustereret.

De indledende hvide mellemrum fjernes og de resterende tegn suppleres til højre med op til en angivet samlet length (længde) med padding polstringstegnet.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal venstrejusteres. Hvis tom, returnerer metoden en tom streng.

længde: Længden af den resulterende streng (standard= input-strengens længde).

Hvis den angivne længde er kortere end den venstrejusterede input-streng, afkortes den returnerede streng.

padding: The single character to be used as padding (default = the ASCII space " ").

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 input-strengen højrejusteret.

De indledende hvide mellemrum fjernes og de resterende tegn suppleres til venstre med op til en angivet samlet length (længde) med padding polstringstegnet.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal højrejusteres. Hvis tom, returnerer metoden en tom streng.

længde: Længden af den resulterende streng (standard= input-strengens længde).

Hvis den angivne længde er kortere end den højre-justerede streng, afkortes den returnerede streng.

padding: The single character to be used as padding (default = the ASCII space " ").

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 input-strengen omgivet af enkelte eller dobbelte anførselstegn. Eksisterende anførselstegn efterlades uændrede, herunder indledende og afsluttende anførselstegn.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal citeres.

anførselstegn: Enten enkelt (') eller dobbelt (") 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 metode kan være nyttig, når du forbereder et streng-felt, der skal gemmes i en CSV-lignende fil, hvilket kræver, at tekstværdierne er omgivet af enkelte eller dobbelte anførselstegn.


ReplaceChar

Erstatter alle forekomster af de tegn, der er angivet i parameteren Before (før) med de tilsvarende tegn, der er angivet i After (efter).

Hvis længden af Before (før) er større end længden af After (efter) erstattes de resterende tegn i Before med det sidste tegn i After.

Syntaks:

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

Parametre:

inputstr: Den input-streng, som erstatninger sker på.

før: En streng med de tegn, der søges efter i input-strengen til erstatning,

efter: En med de nye tegn, der skal er dem, der er defineret i før.

Eksempel:


    ' Erstatter tegn med accenter
    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 leverer nyttige delte konstanter til de latinske tegnsæt, som vist i eksemplet herunder:


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

ReplaceRegex

Erstatter alle forekomster af et givet regulært udtryk med en ny streng.

Syntaks:

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

Parametre:

inputstr: Den input-streng, hvor erstatninger skal ske.

regex: Det regulære udtryk.

nystr: Erstatningsstrengen.

Stort-og-småt: Søgningen kan være med Stort-og-småt eller ikke (Standard = False (falsk)) .

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." (hvert lille bogstav er erstattet 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 nogle eller alle forekomster af en matrix af strenge i en streng med en matrix af nye strenge.

Syntaks:

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

Parametre:

inputstr: Den input-streng, hvor erstatninger skal ske.

oldstr: En enkelt streng eller et matrix af strenge . Nul-længde strenge ignorereres.

newstr: Den erstattende streng eller en matrix af erstattende strenge.

If oldstrer en matrix, hver enkelt af et vilkårligt element i oldstr erstattes med newstr.

Hvis oldstr og newstr er matrixer, sker erstatninger en for en frem til UBound(newstr).

Hvis oldstr har flere elementer end newstr, erstattes de resterende elementer i oldstr af det sidste element i newstr.

forekomster: Det maksimale antal erstatninger. Standardværdien er 0, hvilket betyder at alle forekomster bliver erstattet.

Når oldstr er en matrix, beregnes parameteren occurrence (forekomst) enkeltvis for hvert element i matrixen.

Stort-og-småt: Søgningen kan være med Stort-og-småt eller ikke (Standard = False (falsk)) .

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 læselig repræsentation af argumentet, afkortet til en given længde. Detter er nyttigt, hovedsagelig til aflusnings- og logging-formål.

Hvis parameteren anyvalue (vilkårlig_værdi) er et objekt, bliver det omgivet med firkantede klammer "[" og "]".

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

Hvis den samlede længde overstiger parameteren maxlength (maksimal_længde), bliver den sidste del af strengen erstattet med " ... (N)", hvor N er den samlede længde af den originale streng før trunkering.

Syntaks:

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

Parametre:

vilkårlig_værdi: Den input-værdi, der skal repræsenteres. Det kan være enhver værdi, som en streng, en matrix, et Basic-objekt, et UNO-objekt og så videre.

maksimal_længde: Den største længde af den resulterende streng. Standardværdien er =, hvilket betyder, at er der ikke er nogen begrænsning af den resulterende repræsentation.

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

Bemærk, at repræsentationen af datatyper som matrixer og objektforekomster af ScriptForge.Dictionary (.ordbog) omfatter både datatype og deres værdier:


    ' Et eksempel med en indbygget Basic-matrix
    MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
    ' "[ARRAY] (0:2) (1, 2, Text\there)"
    Et eksempel med et ScriptForge-matrix
    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-ordbog
    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 input-strengen i omvendt rækkefølge.

Denne metode ligner den indbyggede Basic-funktion StrReverse.

note

For at bruge funktionen StrReverse (omvend_streng), skal udtrykket Option VBASupport 1 findes i modulet.


Syntaks:

svc.Reverse(inputstr: str): str

Parametre:

inputstr: Den streng, der skal vendes.

Eksempel:


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

SplitLines

Returnerer en nul-baseret matrix af strenge med linjerne i input-strengen. Hvert element i matrixen er opnået ved at opdele inputstrengen ved linjeskift-tegn.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal deles.

keepbreaks (behold_skift): Når True (sand), bevares linjeskift i output-matrixen (standard = False (falsk)).

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

Opdeler en streng i en matrix af elementer med et angivet skilletegn.

Hvis en delstreng i anførselstegn indeholder et skilletegn, ignoreres det. Dette er nyttigt, når du parser CSV-lignende poster, der indeholder strenge i anførselstegn.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal deles.

delimiter: A string of one or more characters that will be used as delimiter. The default delimiter is the ASCII space " " character.

forekomster: Det højeste antal delstrenge, der skal returneres. Standardværdier er 0, hvilket betyder, at der ikke er nogen grænse for antallet af returnerede strenge.

anførselstegn: Enten det enkelte (') eller det dobbelte (") 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

Husk på forskellen mellem Basic og Python, når de repræsenterer strenge. I Basic fortolkes for eksempel to "" tegn inde i en streng som et enkelt " tegn. I Python kan strenge, der er omgivet med enkelte anførselstegn, indeholde "-tegn uden at det er nødvendigt at fordoble dem.


StartsWith

Returnerer True (sand), hvis de første tegn i en streng er identiske med en given delstreng.

Denne metode returnerer False ()falsk, Hvis enten input-strengen eller delstrengen har længden = 0 eller når delstrengen er længere end input-strengen.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal testes.

delstreng: Den delstreng, der skal søges i begyndelsen af inputstr.

Stort-og-småt: Søgningen kan være med Stort-og-småt eller ikke (Standard = False (falsk)) .

Eksempel:


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

TrimExt

Returnerer input-strengen uden dens indledende og afsluttende hvide rum.

Syntaks:

svc.TrimExt(inputstr: str): str

Parametre:

inputstr: Den streng, der skal trimmes.

Eksempel:


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

Unescape

Converts any escaped sequence (\\, \n, \r, \t) in the input string to their corresponding ASCII character.

Syntaks:

svc.Unescape(inputstr: str): str

Parametre:

inputstr: Den streng, der skal konverteres.

Eksempel:


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

Unquote

Fjerner de enkelte eller dobbelte anførselstegn, der omgiver input-strengen.

Dette er nyttigt, når du parser CSV-lignende poster, der indeholder strenge i anførselstegn.

Syntaks:

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

Parametre:

inputstr: Den streng, hvor anførselstegnene skal fjernes.

anførselstegn: Enten enkelte (') eller dobbelte (") anførselstegn (standard).

Eksempel:


    Dim s as String
    ' s = "Noget tekst" (uden omgivende anførselstegn)
    s = SF_String.Unquote("""Some text""")
    'Strengen herunder har ikke omgivende anførselstegn, derfor forbliver den uændret
    ' s = "Noget tekst" (uændret)
    s = SF_String.Unquote("Some text")
    ' Anførselstegn inde i strengen fjernes ikke
    ' s = "Den ""sande"" betydning" (uændret)
    s = SF_String.Unquote("The ""true"" meaning")
  

Wrap

Konverterer input-strengen til en matrix af delstrenge, sådan at hvert element i matrixen højst har et givet antal tegn.

I praksis returnerer denne metode en nul-baseret matrix af output-linjer uden ny linje i slutningen, undtagen ved de allerede eksisterede linjeskift.

Tabulatorerne udvides med den samme procedure udført af metoden ExpandTabs (udvid faneblade).

Symbolic line breaks are replaced by their equivalent ASCII characters.

Hvis det ombrudte output ikke har noget indhold, er den returnerede matrix tom.

Syntaks:

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

Parametre:

inputstr: Den streng, der skal ombrydes.

bredde: Det maksimale antal tegn i hver linje (standard= 70).

tabulatorafstand: Før teksten ombrydes, erstattes de eksisterende Tabulator- Chr(9) -tegn med mellemrum. Argumentet tabulatorafstand definerer Tabulatorstop på Tabulatorafstand+ 1, 2 * tTabulatorafstand + 1 , ... N * TabSize + 1 (Default = 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 Basic-rutiner eller identifikatorer, der er indledet med et understreget tegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.


Støt os venligst!