Innhold

# ScriptForge.String tjeneste

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

- Validere innholdet i strenger

- Formater strenger ved å trimme, rettferdiggjøre eller pakke inn innholdet

- Bruk regulære uttrykk for å søke og erstatte delstrenger

- Bruk hash-algoritmer på strenger, etc.

## Definisjoner

### Linjebrytninger

Tjenesten String gjenkjenner følgende linjeskift:

Symbolsk navn | ASCII-nummer
--- | ---
Linjemating Vertikal fane Vognretur Vognretur + Linjemating Filseparator Gruppeseperator Post-skilletegn Neste linje Linjeseparator Avsnittsseparator | 10 12 13 13 + 10 28 29 30 133 8232 8233

### Mellomrom

Tjenesten String gjenkjenner følgende mellomrom:

Symbolsk navn | ASCII nummer
--- | ---
Mellomrom Horisontal fane Linjemating Vertikal fane Skjemamating Vognretur Neste linje Mellomrom uten pause Linje Skilletegn Avsnittsskilletegn | 32 9 10 11 12 13 133 160 8232 8233

### Escape-sekvenser

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

Escape-sekvenser | Symbolsk navn | ASCII nummer
--- | --- | ---
\n \r \t | Linjemating Vognretur Horisontal fane | 10 13 9

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

### Ikke-utskrivbare tegn:

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

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

### Sitater i strenger:

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

- Strengen [str\'e\'ng] tolkes som [str'e'ng]

- Strengen [str\"e\"ng] tolkes som [str"e"ng]

## Tjenestepåkallelse

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

##### I Basic

          GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

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

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

        Dim s as String : s = "abc def"
        s = SF_String.Capitalize(s) ' Abc Def

        Dim s as String : s = "abc def"
        Dim svc : svc = SF_String
        s = svc.Capitalize(s) ' Abc Def

        Dim s as String : s = "abc def"
        Dim svc : svc = CreateScriptService("String")
        s = svc.Capitalize(s) ' Abc Def

##### I Python

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

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

## Egenskaper

Objektet SF_String gir følgende egenskaper for Basic skript:

Navn | Skrivebeskyttet | Beskrivelse
--- | --- | ---
sfCR | Ja | Vognretur: Kar(13)
sfCRLF | Ja | Vognretur + linjemating: Kar(13) & Kar(10)
sfLF | Ja | Linjemating: Kar(10)
sfNEWLINE | Ja | Carriage return + Linefeed, som kan være 1) Kar(13) & Kar(10) eller 2) Linjemating: Kar(10) avhengig av operativsystemet.
sfTAB | Ja | Horisontal tabulering: Chr(9)

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

Liste over metoder i strengtjenesten
Capitalize Count EndsWith Escape ExpandTabs FilterNotPrintable FindRegex HashStr HtmlEncode IsADate IsAlpha IsAlphaNum IsAscii IsDigit IsEmail | IsFileName IsHexDigit IsIBAN IsIPv4 IsLike IsLower IsPrintable IsRegex IsSheetName IsTitle IsUpper IsUrl IsWhitespace JustifyCenter JustifyLeft | JustifyRight Quote ReplaceChar ReplaceRegex ReplaceStr Represent Reverse SplitLines SplitNotQuoted StartsWith TrimExt Unescape Unquote Wrap

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

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

## Capitalize

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

### Syntaks:

svc.Capitalize(inputstr: str): str

### Parametre:

inputstr: Strengen som skal skrives med store bokstaver.

### Eksempel:

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

## Count

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

### Syntaks:

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

### Parametre:

inputstr: Inndatastrengen som skal undersøkes

understreng: Understrengen eller det regulære uttrykket som skal brukes under søk

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

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

### Eksempel:

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

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

## EndsWith

Returnerer True hvis en streng slutter med en spesifisert delstreng.

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal testes.

understreng: Understrengen som skal søkes i på slutten av inputstr.

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

### Eksempel:

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

## Escape

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

### Syntaks:

svc.Escape(inputstr: str): str

### Parametre:

inputstr: Strengen som skal konverteres.

### Eksempel:

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

## ExpandTabs

Erstatter tabulatortegn Chr(9) med mellomrom for å gjenskape oppførselen til tabulatorstopp.

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal utvides

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

### Eksempel:

        Dim myText as String
        myText = "100" & SF_String.sfTAB & "200" & SF_String.sfTAB & "300" & SF_String.sfNEWLINE & _
                 "X"  & SF_String.sfTAB & "Y" & SF_String.sfTAB & "Z"
        MsgBox SF_String.ExpandTabs(myText)
        '100     200     300
        'X       Y       Z

## FilterNotPrintable

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal søkes i

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

### Eksempel:

        Dim LF : LF = Chr(10)
        Dim myText as String
        myText = "àén ΣlPµ" & LF & " Русский" & "\n"
        MsgBox SF_String.FilterNotPrintable(myText)
        ' "àén ΣlPµ Русский\n"

## FindRegex

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som det skal søkes i

regex: Det regulære uttrykket

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

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

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

Ved første iterasjon, hvis fremover = Sant, så skal start være lik 1, mens hvis ffremover = Usant så start skal være lik Len(inputstr)

### Eksempel:

        Dim lStart As Long : lStart = 1
        Dim result as String
        result = SF_String.FindRegex("abCcdefghHij", "C.*H", lStart, CaseSensitive := True)
        MsgBox lStart & ": " & result
        '3: CcdefghH

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

## HashStr

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

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

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal hash. Det antas å være kodet i UTF-8. Hashing-algoritmen vil vurdere strengen som en bytestrøm.

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

### Eksempel:

##### I Basic

        MsgBox SF_String.HashStr("œ∑¡™£¢∞§¶•ªº–≠œ∑´®†¥¨ˆøπ‘åß∂ƒ©˙∆˚¬", "MD5")
        ' c740ccc2e201df4b2e2b4aa086f35d8a

##### I Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        a_string = "œ∑¡™£¢∞§¶•ªº–≠œ∑´®†¥¨ˆøπ‘åß∂ƒ©˙∆˚¬"
        hash_value = svc.HashStr(a_string, "MD5")
        bas.MsgBox(hash_value)
        # c740ccc2e201df4b2e2b4aa086f35d8a

## HtmlEncode

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

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

### Syntaks:

svc.HtmlEncode(inputstr: str): str

### Parametre:

inputstr: Strengen som skal kodes.

### Eksempel:

        MsgBox SF_String.HtmlEncode("<a href=""https://a.b.com"">From α to ω</a>")
        ' "&lt;a href=&quot;https://a.b.com&quot;&gt;From &#945; to &#969;&lt;/a&gt;"

## IsADate

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

### Syntaks:

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

### Parametre:

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

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

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

Hvis formatet er ugyldig, returnerer metoden Usann.

### Eksempel:

##### I Basic

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

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

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

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

##### I Python

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

## IsAlpha

Returnerer Sann hvis alle tegnene i strengen er alfabetiske.

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

### Syntaks:

svc.IsAlpha(inputstr: str): bool

### Parametre:

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

### Eksempel:

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

## IsAlphaNum

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

### Syntaks:

svc.IsAlphaNum(inputstr: str): bool

### Parametre:

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

### Eksempel:

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

## IsAscii

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

### Syntaks:

svc.IsAscii(inputstr: str): bool

### Parametre:

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

### Eksempel:

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

## IsDigit

Returnerer Usann hvis alle tegnene i strengen er sifre.

### Syntaks:

svc.IsDigit(inputstr: str): bool

### Parametre:

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

### Eksempel:

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

## IsEmail

Returnerer Sann hvis strengen er en gyldig e-postadresse.

### Syntaks:

svc.IsEmail(inputstr: str): bool

### Parametre:

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

### Eksempel:

##### I Basic

        MsgBox SF_String.IsEmail("first.last@something.org") ' True
        MsgBox SF_String.IsEmail("first.last@something.com.br") ' True
        MsgBox SF_String.IsEmail("first.last@something.123") ' False

##### I Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsEmail("first.last@something.org")) # True
        bas.MsgBox(svc.IsEmail("first.last@something.com.br")) # True
        bas.MsgBox(svc.IsEmail("first.last@something.123")) # False

## IsFileName

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

### Syntaks:

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

### Parametre:

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

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

Standardverdien er det gjeldende operativsystemet som skriptet kjører på.

### Eksempel:

##### I Basic

        MsgBox SF_String.IsFileName("/home/user/Documents/a file name.odt", "LINUX") ' True
        MsgBox SF_String.IsFileName("C:\home\a file name.odt", "LINUX") ' False
        MsgBox SF_String.IsFileName("C:\home\a file name.odt", "WINDOWS") ' True

##### I Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsFileName("/home/user/Documents/a file name.odt", "LINUX")) # True
        bas.MsgBox(svc.IsFileName(r"C:\home\a file name.odt", "LINUX")) # False
        bas.MsgBox(svc.IsFileName(r"C:\home\a file name.odt", "WINDOWS")) # True

## IsHexDigit

Returnerer Sann hvis alle tegnene i strengen er heksadesimale sifre.

### Syntaks:

svc.IsHexDigit(inputstr: str): bool

### Parametre:

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

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

### Eksempel:

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

## IsIBAN

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

### Syntaks:

svc.IsIBAN(inputstr: str): bool

### Parametre:

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

### Returverdi:

Sann hvis strengen inneholder et gyldig IBAN-nummer.

### Eksempel:

        ' Basic
        MsgBox SF_String.IsIBAN("BR15 0000 0000 0000 1093 2840 814 P2") ' True

        # Python
        result = svc.IsIBAN("BR15 0000 0000 0000 1093 2840 814 P2") # True

## IsIPv4

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

### Syntaks:

svc.IsIPv4(inputstr: str): bool

### Parametre:

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

### Eksempel:

##### I Basic

        MsgBox SF_String.IsIPv4("192.168.1.50") ' True
        MsgBox SF_String.IsIPv4("192.168.50") ' False
        MsgBox SF_String.IsIPv4("255.255.255.256") ' False

##### I Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsIPv4("192.168.1.50")) # True
        bas.MsgBox(svc.IsIPv4("192.168.50")) # False
        bas.MsgBox(svc.IsIPv4("255.255.255.256")) # False

## IsLike

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

### Syntaks:

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

### Parametre:

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

mønster: Mønsteret som en streng. Jokertegn er:

- "?" representerer et enkelt tegn;

- "*" representerer null, ett eller flere tegn.

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

### Eksempel:

##### I Basic

        MsgBox SF_String.IsLike("aAbB", "?A*") ' True
        MsgBox SF_String.IsLike("C:\a\b\c\f.odb", "?:*.*") ' True
        MsgBox SF_String.IsLike("name:host", "?*@?*") ' False
        MsgBox SF_String.IsLike("@host", "?*@?*") ' False

##### I Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsLike("aAbB", "?A*")) # True
        bas.MsgBox(svc.IsLike(r"C:\a\b\c\f.odb", "?:*.*")) # True
        bas.MsgBox(svc.IsLike("name:host", "?*@?*")) # False
        bas.MsgBox(svc.IsLike("@host", "?*@?*")) # False

## IsLower

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

### Syntaks:

svc.IsLower(inputstr: str): bool

### Parametre:

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

### Eksempel:

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

## IsPrintable

Returnerer Sann hvis alle tegnene i strengen kan skrives ut.

### Syntaks:

svc.IsPrintable(inputstr: str): bool

### Parametre:

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

### Eksempel:

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

## IsRegex

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

### Syntaks:

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

### Parametre:

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

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

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

### Eksempel:

            MsgBox SF_String.IsRegex("aAbB", "[A-Za-z]+") ' True
            MsgBox SF_String.IsRegex("John;100", "[A-Za-z]+;[0-9]+") ' True
            MsgBox SF_String.IsRegex("John;100;150", "[A-Za-z]+;[0-9]+") ' False

## IsSheetName

Returnerer True hvis inndatastrengen er et gyldig Calc-arknavn.

### Syntaks:

svc.IsSheetName(inputstr: str): bool

### Parametre:

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

### Eksempel:

##### I Basic

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

##### I Python

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

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

## IsTitle

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

### Syntaks:

svc.IsTitle(inputstr: str): bool

### Parametre:

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

### Eksempel:

        MsgBox SF_String.IsTitle("This Is The Title Of My Book") ' True
        MsgBox SF_String.IsTitle("This is the Title of my Book") ' False
        MsgBox SF_String.IsTitle("Result Number 100") ' True

## IsUpper

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

### Syntaks:

svc.IsUpper(inputstr: str): bool

### Parametre:

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

### Eksempel:

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

## IsUrl

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

### Syntaks:

svc.IsUrl(inputstr: str): bool

### Parametre:

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

### Eksempel:

##### I Basic

        MsgBox SF_String.IsUrl("http://foo.bar/?q=Test%20URL-encoded%20stuff") ' True
        MsgBox SF_String.IsUrl("www.somesite.org") ' False

##### I Python

        svc = CreateScriptService("String")
        bas = CreateScriptService("Basic")
        bas.MsgBox(svc.IsUrl("http://foo.bar/?q=Test%20URL-encoded%20stuff")) # True
        bas.MsgBox(svc.IsUrl("www.somesite.org")) # False

## IsWhitespace

Returnerer Sann hvis alle tegnene i strengen er mellomrom

### Syntaks:

svc.IsWhitespace(inputstr: str): bool

### Parametre:

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

### Eksempel:

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

## JustifyCenter

Returnerer inndatastrengen senterjustert.

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

### Syntaks:

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

### Parametre:

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

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

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

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

### Eksempel:

        MsgBox SF_String.JustifyCenter("Title", Length := 11) ' "   Title   "
        MsgBox SF_String.JustifyCenter("    ABCDEF", Padding := "_") ' "__ABCDEF__"
        MsgBox SF_String.JustifyCenter("A Long Title", Length := 5) ' "ong T"

## JustifyLeft

Returnerer inndatastrengen venstrejustert.

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

### Syntaks:

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

### Parametre:

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

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

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

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

### Eksempel:

        MsgBox SF_String.JustifyLeft("Title", Length := 10) ' "Title     "
        MsgBox SF_String.JustifyLeft("    ABCDEF", Padding := "_") ' "ABCDEF____"
        MsgBox SF_String.JustifyLeft("A Long Title", Length := 5) ' "A Lon"

## JustifyRight

Returnerer inndatastrengen høyrejustert.

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

### Syntaks:

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

### Parametre:

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

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

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

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

### Eksempel:

        MsgBox SF_String.JustifyRight("Title", Length := 10) ' "     Title"
        MsgBox SF_String.JustifyRight("  ABCDEF  ", Padding := "_") ' "____ABCDEF"
        MsgBox SF_String.JustifyRight("A Long Title", Length := 5) ' "Title"

## Quote

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal siteres.

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

### Eksempel:

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

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

## ReplaceChar

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

Hvis lengden på Før er større enn lengden på Etter, erstattes gjenværende tegn i Før med det siste tegnet i Etter .

### Syntaks:

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

### Parametre:

inputstr: Inndatastrengen som erstatninger vil finne sted på.

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

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

### Eksempel:

        ' Erstatter aksenttegn
        MsgBox SF_String.ReplaceChar("Protégez votre vie privée", "àâãçèéêëîïôöûüýÿ", "aaaceeeeiioouuyy")
        ' "Protegez votre vie privee"
        MsgBox SF_String.ReplaceChar("Protégez votre vie privée", "àâãçèéêëîïôöûüýÿ", "")
        ' "Protgez votre vie prive"
        MsgBox SF_String.ReplaceChar("àâãçèéêëîïôöûüýÿ", "àâãçèéêëîïôöûüýÿ", "aaaceeeeiioouuyy")
        ' "aaaceeeeiioouuyy"

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

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

## ReplaceRegex

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

### Syntaks:

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

### Parametre:

inputstr: Inndatastrengen som erstatninger vil finne sted på.

regex: Det regulære uttrykket.

newstr: Den erstattende strengen.

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

### Eksempel:

        MsgBox SF_String.ReplaceRegex("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "[a-z]", "x", CaseSensitive := True)
        ' "Lxxxx xxxxx xxxxx xxx xxxx, xxxxxxxxxxx xxxxxxxxxx xxxx." (hver liten bokstav erstattes med "x")
        MsgBox SF_String.ReplaceRegex("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", "x", CaseSensitive := False)
        ' "x x x x x, x x x." (hvert ord er erstattet med "x")

## ReplaceStr

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

### Syntaks:

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

### Parametre:

inputstr: Inndatastrengen som erstatninger vil bli brukt på.

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

newstr: Den erstattende strengen eller utvalget av erstattende strenger.

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

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

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

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

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

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

### Eksempel:

        MsgBox SF_String.ReplaceStr("100 xxx 200 yyy", Array("xxx", "yyy"), Array("(1)", "(2)"), CaseSensitive := False)
        ' "100 (1) 200 (2)"
        MsgBox SF_String.ReplaceStr("abCcdefghHij", Array("c", "h"), Array("Y", "Z"), CaseSensitive := False)
        ' "abYYdefgZZij"

## Represent

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

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

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

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

### Syntaks:

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

### Parametre:

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

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

### Eksempel:

        MsgBox SF_String.Represent("this is a usual string") ' "this is a usual string"
        MsgBox SF_String.Represent("this is a usual string", 15) ' "this i ... (22)"
        MsgBox SF_String.Represent("this is a" & Chr(10) & " 2-lines string") ' "this is a\n 2-lines string"
        MsgBox SF_String.Represent(Empty) ' "[EMPTY]"
        MsgBox SF_String.Represent(Null) ' "[NULL]"
        MsgBox SF_String.Represent(Pi) ' "3.142"
        MsgBox SF_String.Represent(CreateUnoService("com.sun.star.util.PathSettings")) ' "[com.sun.star.comp.framework.PathSettings]"

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

        ' Et eksempel med en grunnleggende innebygd matrise
        MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
        ' "[ARRAY] (0:2) (1, 2, Text\there)"
        ' Et eksempel med en ScriptForge Matrise
        Dim aValues as Variant
        aValues = SF_Array.RangeInit(1, 5)
        MsgBox SF_String.Represent(aValues)
        ' "[ARRAY] (0:4) (1.0, 2.0, 3.0, 4.0, 5.0)"
        Et eksempel med en ScriptForge-ordbok
        Dim myDict As Variant : myDict = CreateScriptService("Dictionary")
        myDict.Add("A", 1) : myDict.Add("B", 2)
        MsgBox SF_String.Represent(myDict)
        ' "[Dictionary] ("A":1, "B":2)"

## Reverse

Returnerer inndatastrengen i omvendt rekkefølge.

Denne metoden tilsvarer den innebygde StrReverse Basic-funksjonen.

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

### Syntaks:

svc.Reverse(inputstr: str): str

### Parametre:

inputstr: Strengen som skal reverseres.

### Eksempel:

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

## SplitLines

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal deles.

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

### Eksempel:

        Dim a as Variant
        a = SF_String.SplitLines("Line1" & Chr(10) & "Line2" & Chr(13) & "Line3")
        ' a = Array("Line1", "Line2", "Line3")
        a = SF_String.SplitLines("Line1" & Chr(10) & "Line2" & Chr(13) & "Line3" & Chr(10))
        ' a = Array("Line1", "Line2", "Line3", "")
        a = SF_String.SplitLines("Line1" & Chr(10) & "Line2" & Chr(13) & "Line3" & Chr(10), KeepBreaks := True)
        ' a = Array("Line1\n", "Line2\r", "Line3\n", "")

## SplitNotQuoted

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

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal deles.

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

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

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

### Eksempel:

##### I Basic

        arr1 = SF_String.SplitNotQuoted("abc def ghi")
        ' arr1 = Array("abc", "def", "ghi")
        arr2 = SF_String.SplitNotQuoted("abc,""def,ghi""", ",")
        ' arr2 = Array("abc", """def,ghi""")
        arr3 = SF_String.SplitNotQuoted("abc,""def\"",ghi""", ",")
         ' arr3 = Array("abc", """def\"",ghi""")
        arr4 = SF_String.SplitNotQuoted("abc,""def\"",ghi"""",", ",")
        ' arr4 = Array("abc", """def\"",ghi""", "")

##### I Python

        svc = CreateScriptService("String")
        arr1 = svc.SplitNotQuoted('abc def ghi')
        # arr1 = ('abc', 'def', 'ghi')
        arr2 = svc.SplitNotQuoted('abc,"def,ghi"', ",")
        # arr2 = ('abc', '"def,ghi"')
        arr3 = svc.SplitNotQuoted(r'abc,"def\",ghi"', ",")
        # arr3 = ('abc', '"def\\",ghi"')
        arr4 = svc.SplitNotQuoted(r'abc,"def\",ghi"",', ",")
        # arr4 = ('abc', '"def\\",ghi""', '')

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

## StartsWith

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

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal testes.

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

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

### Eksempel:

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

## TrimExt

Returnerer inndatastrengen uten innledende og etterfølgende mellomrom.

### Syntaks:

svc.TrimExt(inputstr: str): str

### Parametre:

inputstr: Strengen som skal trimmes.

### Eksempel:

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

## Unescape

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

### Syntaks:

svc.Unescape(inputstr: str): str

### Parametre:

inputstr: Strengen som skal konverteres.

### Eksempel:

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

## Unquote

Fjerner de enkle eller doble anførselstegnene som omslutter inndatastrengen.

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal fjernes fra anførselstegn.

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

### Eksempel:

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

## Wrap

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

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

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

Symbolske linjeskift erstattes av tilsvarende ASCII-tegn.

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

### Syntaks:

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

### Parametre:

inputstr: Strengen som skal brytes.

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

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

### Eksempel:

##### I Basic

        a = "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
        b = SF_String.Wrap(a, 20)
        ' Array("Neque porro ", "quisquam est qui ", "dolorem ipsum quia ", "dolor sit amet, ", "consectetur, ", "adipisci velit...")

##### I Python

        a = "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
        b = svc.Wrap(a, 20)
        # ('Neque porro ', 'quisquam est qui ', 'dolorem ipsum quia ', 'dolor sit amet, ', 'consectetur, ', 'adipisci velit...')

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

Lignende emner

ScriptForge.Matrise tjeneste

Strengfunksjon