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.