Tenesta ScriptForge.String

Tenesta String leverer ei samling av metodar til strenghandsaming. Desse metodane kan brukast til:

Definisjonar

Linjeskift

Tenesta String skjenner igjen desse linjeskifta:

Symbolsk namn

ASCII-nummer

Linjeskift
Loddrett tabulator
Vognretur
Vognretur + linjeskift
Fil-skiljeteikn
Gruppe-skiljeteikn
Post-skiljeteikn
Ny linje
Linje-skiljeteikn
Avsnitts-skiljeteikn

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


Blankteikn

Tenesta String skjenner igjen desse blankteikna:

Symbolsk namn

ASCII-nummer

Mellomrom
Vassrett tabulator
Linjeskift
Loddrett tabulator
Sideskift
Vognretur
Neste linje
Mellomrom utan linjeskift
Linje-skiljeteikn
Avsnitts-skiljeteikn

32
9
10
11
12
13
133
160
8232
8233


Escape-sekvensar

Nedanfor er ei liste over escape-sekvensar som kan brukast i strengar.

Escape-sekvensar

Symbolsk namn

ASCII-nummer

\n
\r
\t

Linjeskift
Vognretur
Vassrett tabulator

10
13
9


tip

For å unngå at escape-sekvensen "\n" vert tolka som ein gjeldande streng, bruk "\\n" i staden for "\" & Chr(10).


Teikn som ikkje kan skrivast ut:

Teikn som i Unicode Character Database er definerte som “Other” eller “Separator” vert sett på som teikn som ikkje kan skrivast ut.

Kontrollteikn (ascii code <= 0x1F) vert også sett på som teikn som ikkje kan skrivast ut.

Hermeteikn inne i strengar:

For å setja inn hermeteikna ' (enkelt hermeteikn) og " (dobbelt hermeteikn) i strengar, bruk \' og \". For eksempel:

Oppkall av tenester

Før du kan bruka tenesta ScriptForge.String, må du henta inn biblioteket ScriptForge med:

I Basic

      GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
  

Lastinga av biblioteket vil laga objektet SF_String som kan brukast for å kalla opp metodane i tenesta String.

Desse kodesnuttane viser tre måtar for å kalla opp metodar i tenesta String (Capitalize er brukt 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

Kodesnutten nedanfor viser korleis metodar frå tenest String kan kallast opp i Python-skript. Metoden IsIPv4 vert brukt som eksempel.


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

Eigenskapar

Objektet SF_String inneheld desse eigenskapane for Basic-kript:

Name

Skriveverna

Beskriving

sfCR

Ja

Vognretur

sfCRLF

Ja

Vognretur + linjeskift: Chr(13) & Chr(10)

sfLF

Ja

Linjeskift: Chr(10)

sfNEWLINE

Ja

Vognretur + linjeskift, som kan vera
1) Chr(13) & Chr(10) eller
2) Linjeskift: Chr(10)
avhengig av operativsystemet.

sfTAB

Ja

Vassrett tabulator: Chr(9)


tip

Du kan bruka eigenskapane ovanfor for å identifisere eller setja inn dei tilsvarande teikna i strengar. For eksempel kan teiknet for linjeskift bytast ut med SF_String.sfLF.


Liste over metodar i tenesta String

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 dei fleste metodane er strengen som skal vurderast. Han vert alltid sendt vidare som referanse og vert ikkje endra. Metodar som Capitalize, Escape og så vidare returnerer ein ny streng etter at dei er utførte.


warning

Fordi Python har omfattande innebygd strengstøtte, er dei fleste metodane i tenesta String berre tilgjengelege for grunnleggjande skript. Metodane som er tilgjengelege for Basic og Python er: HashStr, IsADate, IsEmail, IsFileName, IsIBAN, IsIPv4, IsLike, IsSheetName, IsUrl, SplitNotQuoted og Wrap.


Capitalize

Skriv den første bokstaven i kvart ord som stor bokstav i inndata-strengen.

Syntaks:

svc.Capitalize(inputstr: str): str

Parametrar:

InputStr: Strengen som skal skrivast med stor bokstav.

Eksempel:


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

Count

Tel kor mange gonger ein delstreng eller eit regulært uttrykk finst i ein streng.

Syntaks:

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

Parametrar:

inputstr: Inndatastrengen som skal kontrollerast

substring: Delstrengen eller det regulære uttrykket som skal brukast ved søkinga

isregex: Bruk ann viss understrengen er eit regulært uttrykk ( standard = Usann)

casesensitive: Søket kan skilja mellom store og små bokstavar eller ikkje (standard = Usann).

Eksempel:


    ' Tel kor ofte delstrengen "or" finst i strengen (returnerer 2)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "or", CaseSensitive := False)
    ' Tel kor mange ord det er med berre små bokstavar (returnerer 7)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", IsRegex := True, CaseSensitive := True)
  
tip

Du kan finna meir om regulære uttrykk i dokumentasjonen for Python på nettsida Regular Expression Operations.


EndsWith

Returnerer Sann viss ein streng sluttar med den spesifiserte understrengen.

Funksjonen returnerer Usann når ein streng eller ein understreng har lengd = 0 eller viss understrengen er lengre enn strengen.

Syntaks:

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

Parametrar:

InputStr: Strengen som skal kontrollerast.

substring: Understrengen som skal søkast i på slutten av inputstr.

casesensitive: Søket kan skilja mellom store og små bokstavar eller ikkje (standard = Usann).

Eksempel:


    ' Returnerer Sann fordi metoden vart kalla opp med standarden "CaseSensitive = Usann"
    MsgBox SF_String.EndsWith("abcdefg", "EFG")
    ' Returnerer «Usann» på grunn av parametera sette i CaseSensitive
    MsgBox SF_String.EndsWith("abcdefg", "EFG", CaseSensitive := True)
  

Escape

Konverterer linjebrytingar og tabulatorar i inndatastrengen til den tilsvarande escape-sekvensen (\\, \n, \r, \t).

Syntaks:

svc.Escape(inputstr: str): str

Parametrar:

inputstr: Strengen som skal konverterast.

Eksempel:


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

ExpandTabs

Erstattar tabulator-teikn Chr(9) med mellomromsteikn for å gjenskape verkemåten til tabulatorane.

Viss det finst eit linjeskift, vert det byrja på ei ny linje og teiknteljaren vert sett til null.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal utvidast

tabsize: Denne parameteren vert brukt for å bestemma tabulatorsettingane med 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

Byter ut alle teikna som ikkje kan skrivast ut med eit gjeve teikn.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal søkjast etter

replacedby: Null, eitt eller fleire teikn som erstattar alle teikna som ikkje kan skrivast ut 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

Finn ein delstreng i ein streng som samsvarar med eit gjeve regulært uttrykk.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal søkjast etter

regex: Det regulære uttrykket

start: Staden i strengen der søket skal byrja. Denne parameteren vert sendt med referanse, så etter køyringa vil verdien av start peika til det første teiknet i den funne understrengen. Viss det ikkje vert funne nokon samsvarande understreng, vert start sett til 0.

casesensitive: Søket kan skilja mellom store og små bokstavar eller ikkje (standard = Usann).

forward: Bestemmer retninga for søket. Viss Sann, vert det søkt framover, viss Usann bakover. (Standard = Sann)

Viss forward = Sann i den første gjentakinga, bør start vera lik 1, men er forward = Usann bør start vera 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 eksempelet ovanfor kan den nye verdien for lStart brukast for å søkja i den same inndatastrengen ved å setja parameteren Start til lStart + Len(result) i den neste gjentakinga.


HashStr

Hash-funksjonar vert brukte av nokre kryptografiske algoritmar, i digitale signaturar, meldings-godkjenningskodar, oppdaging av manipulering, fingeravtrykk, kontrollsummar (kontroll av meldingsintegritet), hash-tabellar, lagring av passord og mykje meir.

Metoden HashStr returnerer resultatet av ein hash-funksjon som er brukt på ein gjeven streng og med ein spesifisert algoritme. Den returnerte verdien er ein streng av heksadesimale siffer skrive med små bokstavar.

Dei støtta hash-algoritmane er: MD5, SHA1, SHA224, SHA256, SHA384 og SHA512.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal «hashast». Det vert gått ut frå at han er koda i UTF-8. Hash-algoritmen oppfattar strengen som ein sekvens av byte.

algoritme: Ein av dei støtta algoritmane lista opp ovanfor, sendt vidare som ein 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

Kodar inndatastrengen i HTML-teiknkoder og byter ut spesialteikn med tilsvarande &-teikn.

Teiknet é vert for eksempel byt ut med &eacute; eller ein tilsvarande numerisk HTML-kode.

Syntaks:

svc.HtmlEncode(inputstr: str): str

Parametrar:

inputstr: Strengen som skal kodast.

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 Sann viss inndatastrengen er ein gyldig dato etter eit bestemt datoformat.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal kontrollerast, Viss tom, returnerer metoden Usann

datoformat: Datoformatet som ein streng. Det kan vera anten "YYYY-MM-DD" (Standard), "DD-MM-YYYY" eller "MM-DD-YYYY"

Bindestreken (-) kan bytast ut med eit punktum (.), ein skråstrek (/) eller eit mellomrom.

Viss formatet er ugyldig, returnerer metoden Usann.

Eksempel:

I Basic

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

Denne metoden kontrollerer formatet til inndatastrengen utan å gjera kalenderspesifikke kontrollar. Difor testar han ikkje inndatastrengen for skotår eller månader med 30 eller 31 dagar. For å gjera det, sjå den innebygde funksjonen IsDate.


Eksempelet nedanfor viser skilnaden mellom metodane IsADate (ScriptForge) og funksjonen IsDate (innebygd).


    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 viss alle teikna i strengen er alfabetiske.

Alfabetiske teikn er dei teikna som i Unicode Character Database er definerte som bokstavar.

Syntaks:

svc.IsAlpha(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann

Eksempel:


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

IsAlphaNum

Returnerer Sann viss alle teikna i strengen er alfabetiske, siffer eller "_" (understrek). Det første teiknet kan ikkje vera eit siffer.

Syntaks:

svc.IsAlphaNum(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann.

Eksempel:


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

IsAscii

Returnerer Sann viss alle teikna i strengen er ASCII-teikn.

Syntaks:

svc.IsAscii(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann

Eksempel:


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

IsDigit

Returnerer Sann viss alle teikna i strengen er siffer.

Syntaks:

svc.IsDigit(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann

Eksempel:


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

IsEmail

Returnerer Sann viss strengen er ei gyldig e-postadresse.

Syntaks:

svc.IsEmail(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss 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 viss strengen er eit gyldig filnamn i eit gjeve operativsystem.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann

osname: Namnet på operativsystemet som ein streng. Det kan vera «WINDOWS», «LINUX», «MACOSX» eller «SOLARIS».

Standardverdien er det gjeldande operativsystem, som skriptet køyrer 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 viss alle teikna i strengen er heksadesimale siffer.

Syntaks:

svc.IsHexDigit(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann

Dei heksadesimale sifra kan ha prefikset «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 viss strenge er eit gyldig «Internationalt Bank Account Nummer» (IBAN). Samanlikninga skil ikkje mellom store og små bokstavar.

Syntaks:

svc.IsIBAN(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann

Returverdi:

Sann viss strengen inneheld eit 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 viss strengen er ei gyldig IP-adresse (v4).

Syntaks:

svc.IsIPv4(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss 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 viss heile inndatastrengen samsvarar med eit gjeve mønster som inneheld jokerteikn.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann

pattern: Mønsteret som ein streng. Jokerteikna er:

casesensitive: Søket kan skilja mellom store og små bokstavar eller ikkje (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 viss alle teikna i strengen er små. Teikn som ikkje er alfabetiske vert ignorerte.

Syntaks:

svc.IsLower(inputstr: str): bool

Parametrar:

inputStr: Strengen som skal kontrollerast. Viss 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 viss alle teikna i strengen kan skrivast ut.

Syntaks:

svc.IsPrintable(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss 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 viss heile inndatastrengen samsvarar med eit gjeve regulært uttrykk.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann

regex: Det regulære uttrykket. Viss tom vil metoden returnere Usann.

casesensitive: Søket kan skilja mellom store og små bokstavar eller ikkje (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 Sann viss inndatastrengen er eit gyldig arknamn i Calc.

Syntaks:

svc.IsSheetName(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss 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

Eit arknamn må ikkje innehalda teikna [, ], *, ?, :, /, \ eller teiknet ' (apostrof) som første eller siste teikn.


IsTitle

Returnerer Sann viss det første teikn i kvart ord er skrive med stor bokstav og dei andre teikna er små bokstavar.

Syntaks:

svc.IsTitle(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss 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 viss alle bokstavane i strengen er store. Teikn som ikkje er alfabetiske vert ignorerte.

Syntaks:

svc.IsUpper(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss tom, returnerer metoden Usann

Eksempel:


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

IsUrl

Returnerer Sann viss strengen er ein gyldig absolutt URL (Uniform Resource Locator)-adresse. Det er støtte berre for protokollane http, https og ftp.

Syntaks:

svc.IsUrl(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss 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 viss alle teikna i strengen er blankteikn.

Syntaks:

svc.IsWhitespace(inputstr: str): bool

Parametrar:

inputstr: Strengen som skal kontrollerast. Viss 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 inndata-strengen midtstilt.

Dei innleiande og avsluttande blankteikna vert fjerna og teikna som er igjen vert supplerte til høgre og venstre opp til den gjevne totalsummen length med teiknet padding.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal midtstillast. Viss tom, returnerer metoden ein tom streng.

length: Lengda på den resulterande strengen (standard = lengda på inndatastrengen).

Viss den gjevne strengen er kortare enn den midtstilte inndatastrengen, vert den returnerte strengen avkorta.

padding: Det enkeltteiknet som skal brukast som fyll (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 inndata-strengen venstrejustert.

Dei innleiande blankteikna vert fjerna og teikna som er igjen vert supplerte til høgre opp til den gjevne totalsummen length med teiknet padding.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal venstrejusterast. Viss tom, returnerer metoden ein tom streng.

length: Lengda på den resulterande strengen (standard = lengda på inndatastrengen).

Viss den gjevne strengen er kortare enn den venstrejusterte inndatastrengen, vert den returnerte strengen avkorta.

padding: Det enkeltteiknet som skal brukast som fyll (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 inndata-strengen høgrejustert.

Dei innleiande blankteikna vert fjerna og teikna som er igjen vert supplerte til venstre opp til den gjevne totalsummen length med teiknet padding.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal høgrejusterast. Viss tom, returnerer metoden ein tom streng.

length: Lengda på den resulterande strengen (standard = lengda på inndatastrengen).

Viss den gjevne strengen er kortare enn den høgrejusterte inndatastrengen, vert den returnerte strengen avkorta.

padding: Det enkeltteiknet som skal brukast som fyll (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 mellom enkle eller doble sitatteikn. Sitatteikn som finst frå før vert ikkje endra, inkludert innleiande og/eller avsluttande sitatteikn.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal setjast mellom sitatteikn.

quotechar: Anten enkelt (') eller dobbelt (") hermeteikn (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 vera nyttig når du gjer klar eit strengfelt som skal lagrast i ei csv-liknande fil, noko som krev at tekstverdiar vert omgjevne av enkle eller doble sitatteikn.


ReplaceChar

Byter ut alle førekomstar av teikna som er gjevne i parameteren Before med dei tilsvarande teikna som er gjevne i After.

Viss lengda av Before er større enn lengda av After, vert dei resterande teikna i Before bytt ut med det siste teiknet i After.

Syntaks:

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

Parametrar:

inputstr: Inndata-strengen der bytinga skal skje.

before: Ein streng med teikna som det skal søkjast etter i inndatastrengen for å bytast ut.

after: Ein streng med nye teikn som skal bytast ut med dei som er definerte i before.

Eksempel:


    ' Byter ut teikn med aksent
    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"
  

Tenesta SF_String inneheld nyttige delte konstantar for dei latinske teiknsetta, som vist i eksemplet nedanfor:


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

ReplaceRegex

Byter ut alle førekomstar av eit gjeve regulært uttrykk med ein ny streng.

Syntaks:

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

Parametrar:

inputstr: Inndata-strengen der bytinga skal skje.

regex: Det regulære uttrykket.

newstr: Erstatningsstrengen.

casesensitive: Søket kan skilja mellom store og små bokstavar eller ikkje (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." (kvar liten bokstav er erstatta 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." kvart ord er erstatta med «x»)
  

ReplaceStr

Byter ut nokre eller alle førekomstane av ei matrise med strengar med ei matrise med nye strengar.

Syntaks:

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

Parametrar:

inputstr: Inndata-strengen der bytinga skal skje.

oldstr: Ein enkelt streng eller ei matrise av strengar. Strengar med null-lengd vert ignorerte.

newstr: Erstatningsstrengen eller ei matrise av erstatningsstrengar.

Viss oldstr er ei matrise, vert kvar førekomst av kva element som helst i oldstr bytt ut med newstr.

Viss oldstr og newstr er matriser, skjer bytinga ein etter ein opp til UBound(newstr).

Viss oldstr har fleire oppføringar enn newstr, vert restelementa i oldstr bytt ut med det siste elementet i newstr.

occurrences: Det høgste talet på erstatningar. Standardverdien er 0, som gjer at alle førekomstane vert bytte ut.

Når oldstr er ei matrise, vert parameteren occurrence rekna ut enkeltvis for kvart element i matrisa.

casesensitive: Søket kan skilja mellom store og små bokstavar eller ikkje (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 ein streng med ein lesbar representasjon av argumentet, avkorta til ei gjeve lengde. Dette er nyttig stort sett for feilsøkings- eller loggingsføremål.

Viss parameteren anyvalue er eit objekt, vert det omgjeve av hakeparentesane «[» og «]».

I strengar vert tabulatorar og linjeskift byt ut med \t, \n eller \r.

Viss den endelege lengda er større enn malength-parameteren, vert den siste delen av strengen erstatta med « … (N)» der N er den totale lengda på den opphavlege strengen før avkortinga.

Syntaks:

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

Parametrar:

anyvalue: Inndataverdien som skal representerast. Det kan vera kva verdi som helst, for eksempel ein streng, ei matrise, eit Basic-objekt, eit UNO-objekt osv.

maxlength: Den maksimale lengda på den resulterande strengen. Standardverdien er 0, som gjer at det ikkje er noko grense for lengda på den resulterande 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]"
  

Legg merke til at representasjonen av datatypar som matriser og ScriptForge.Dictionary objektførekomstar inkluderer både datatypen og verdiane:


    ' Et eksempel med ei innebygd Basic-matrise
    MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
    ' "[ARRAY] (0:2) (1, 2, Text\there)"
    ' Eit eksempel med ei 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)"
    ' Eit eksempel med ei 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 inndata-strengen i omvendt rekkjefølgje.

Denne metoden svarar til den innebygde Basic-funksjonen StrReverse.

note

For å bruka funksjonen StrReverse må uttrykket OpTion VBASupport 1 vera tilstades i modulen.


Syntaks:

svc.Reverse(inputstr: str): str

Parametrar:

inputstr: Strengen som skal reverserast.

Eksempel:


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

SplitLines

Returnerer ei null-basert matrise av strengar med linjene i inndatastrengen. Kvart element i matrisa vert hent ved å dela inndatastrengen ved linjeskiftteikna.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal delast.

keepbreaks: Når denne er Sann, vert linjeskift ikkje endra i utdatamatrisa (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 ein streng inn i ei matrise av element ved hjelp av eit spesifisert skiljeteikn.

Viss ein delstreng sett mellom sitatteikn inneheld eit skiljeteikn, vert skiljeteiknet ignorert. Dette er nyttig når du analyserer CSV-liknande oppføringar som inneheld strengar i sitatteikn.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal delast.

delimiter: Ein streng med eitt eller fleire teikn som skal brukast som skiljeteikn. Standard-skiljeteiknet er ASCII-mellomromsteiknet « ».

occurrences: Det høgste talet på understrengar som skal returnerast. Standardverdien er 0, som betyr at det ikkje er noko grense for kor mange strengar som kan returnerast.

quotechar: Anten enkelt (') eller dobbelt (") hermeteikn.

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

Når du representerer strengar, ver merksam på skilnadane mellom Basic og Python. I Basic vert for eksempel to doble hermeteikn ("") i ein streng sett på som eitt enkelt dobbelt hermeteikn ("). I Python kan strengar i enkle hermeteikn innehalda doble hermeteikn (") uten å måtta dobla dei.


StartsWith

Returnerer Sann viss dei første teikna i ein streng er identiske med ein gjeven understreng.

Denne metoden returnerer Usann når ein streng eller ein understreng har lengd = 0 eller viss understrengen er lengre enn inndatastrengen.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal kontrollerast.

substring: Understrengen som skal søkast i byrjinga av inputstr.

casesensitive: Søket kan skilja mellom store og små bokstavar eller ikkje (standard = Usann).

Eksempel:


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

TrimExt

Returnerer inndatastrengen utan innleiande eller avsluttande blankteikn.

Syntaks:

svc.TrimExt(inputstr: str): str

Parametrar:

inputstr: Strengen som skal trimmast.

Eksempel:


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

Unescape

Omformar alle escape-sekvensar (\\, \n, \r, \t) i inndatastrengen til dei tilsvarande ASCII-teikna.

Syntaks:

svc.Unescape(inputstr: str): str

Parametrar:

inputstr: Strengen som skal konverterast.

Eksempel:


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

Unquote

Fjernar dei enkle eller doble hermeteikna som omsluttar inndatastrengen.

Dette er nyttig når du analyserer CSV-liknande oppføringar som inneheld strengar i hermeteikn.

Syntaks:

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

Parametrar:

inputstr: Strengen som sitatteikna skal fjernast frå.

quotechar: Anten enkelt (') eller dobbelt (") hermeteikn (standard).

Eksempel:


    Dim s as String
    ' s = "Ein tekst" (utan omgjevande sitatteikn)
    s = SF_String.Unquote("""Some text""")
    ' Strengen nedanfor er ikkje omslutta med sitatteikn, så han vert ikkje endra
    ' s = "Ein tekst" (uendra)
    s = SF_String.Unquote("Some text")
    ' Hermeteikn inne i strengen vert ikkje fjerna
    ' s = "Den ""sanne"" meininga" (uendra)
    s = SF_String.Unquote("The ""true"" meaning")
  

Wrap

Konverterer inndatastrengen til ei matrise med delstrengar, slik at kvart element i matrisa har eit maksimalt gjeve tal på teikn.

I praksis returnerer denne metoden ei nullbasert matrise med utdatalinjer, utan nye linjer på slutten, bortsett frå dei linjeskifta som finst frå før.

Tabulatorane vert utvida med den same prosedyren utført av metoden ExpandTabs.

Symbolske linjeskift vert bytte ut med dei tilsvarande ASCII-teikna.

Viss dei skifte utdataane ikkje har noko innhald, er den returnerte matrisa tom.

Syntaks:

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

Parametrar:

inputstr: Strengen som skal skiftast til ny linje.

width: Det høgste talet på teikn i kvar linje (standard= 70).

tabsize: Før linjeskiftet vert TAB Chr(9)-teikna bytte ut med mellomrom. Argumentet tabsize definerer TAB-stopparane 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 Basic-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.


Støtt oss!