Indhold
Indholdsfortegnelse 🔎︎

# Tjenesten ScriptForge.String (streng)

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

- Validere strengenes indhold

- Formatere strenge ved at trimme, justere eller ombryde deres indhold.

- Bruge regulære udtryk til at søge og erstatte understrenge

- Anvende hash-algoritmer på strenge og så videre.

## Definitioner

### Line breaks (linjeskift)

Tjenesten String (streng) genkender følgende linjeskift:

Symbolic name (Symbolsk navn) | ASCII number (ASCII-nummer)
Linjeskift Lodret tabulator Vognretur Linjeskift + Vognretur Fil-skilletegn Gruppe-skilletegn Post-skilletegn Ny linje Linje-skilletegn Afsnits-skilletegn | 10 12 13 10 + 13 28 29 30 133 8232 8233

### Whitespaces (Hvide rum)

Tjenesten String (streng) genkender disse hvide rum:

Symbolic name (symbolsk navn) | ASCII number (ASCII-nummer)
Mellemrum Vandret tabulator Linjeskift Lodret tabulator Sideskift Vognretur Næste linje Mellemrum uden ombrydning Linje-skilletegn Afsnits-skilletegn | 32 9 10 11 12 13 133 160 8232 8233

### Escape sequences (Undvigesekvenser)

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

Escape Sequence (undvigesekvens) | Symbolic name (symbolsk navn) | ASCII number (ASCII-nummer)
\n \r \t | Linjeskift Vognretur Vandret tabulator | 10 13 9

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

### Tegn, der ikke kan udskrives:

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

Kontroltegn (ascii code <= 0x1F) anses også som tegn, der ikke kan udskrives.

### Anførselstegn inde i strenge:

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

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

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

## Kald af tjeneste

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

          GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")

De følgende kodestumper viser tre måder at kalde metoder i tjenesten String (streng) på (metoden ExpandTabs (udvid faneblade) bruges som eksempel):

            SF_String.ExpandTabs(...)

            Dim s : s = SF_String
            s.ExpandTabs(...)

            Dim s : s = CreateScriptService("String")
            s.ExpandTabs(...)

## Egenskaber

Objektet SF_String (streng) giver følgende egenskaber:

Navn | Skrivebeskyttet | Beskrivelse
sfCR | Yes (ja) | Carriage return (Vognretur): Chr(13)
sfCRLF | Yes (ja) | Carriage return + Linefeed (Vognretur + Linjeskift): Chr(13) & Chr(10)
sfLF | Yes (ja) | Linefeed (linjeskift): Chr(10)
sfNEWLINE | Yes (ja) | Carriage return + Linefeed (vognretur + linjeskift), som kan være 1) Chr(13) & Chr(10) eller 2) Linefeed (linjeskift): Chr(10) afhængigt af operativsystemet.
sfTAB | Yes (ja) | Horizontal tabulation (vandret tabulator): Chr(9)

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

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

## Capitalize

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

### Syntaks:

           SF_String.Capitalize(InputStr As String) As String

### Parametre:

InputStr: Den streng, der skal skrives med Store forbogstaver..

### Eksempel:

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

## Count

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

### Syntaks:

            SF_String.Count(InputStr As String, Substring As String[, IsRegex As Boolean][, CaseSensitive As Boolean]) As Long

### Parametre:

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

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

IsRegex (er Regex): Brug True (sand), hvis delstrengen er et regulært udtryk (standard = False (falsk))

CaseSensitive (Stort og småt): Standard = False (falsk)

### Eksempel:

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

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

## EndsWith

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

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

### Syntaks:

           SF_String.EndsWith(InputStr As String, Substring As String[, CaseSensitive As Boolean]) As Boolean

### Parametre:

InputStr: Den streng, der skal testes.

Substring (delstreng): Delstrenge, der skal søges i slutningen af InputStr.

CaseSensitive (Stort og småt): Sammenligningen kan skelne mellem Store og små bogstaver eller ej (standard = False (falsk)).

### Eksempel:

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

## Escape

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

### Syntaks:

              SF_String.Escape(InputStr As String) As String

### Parametre:

InputStr: Strengen, der skal konverteres.

### Eksempel:

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

## ExpandTabs

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

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

### Syntaks:

            SF_String.ExpandTabs(InputStr As String[, TabSize As Integer]) As String

### Parametre:

InputStr: Strengen, der skal udvides

TabSize (tabulator-størrelse): Denne parameter bruges til at bestemme de tabulatorstop, der bruger formlen: TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (standard = 8)

### Eksempel:

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

## FilterNotPrintable

Erstatter alle tegn, der ikke kan udskrives, i input-strengen med et givet tegn.

### Syntaks:

            SF_String.FilterNotPrintable(InputStr As String[, ReplacedBy As String]) As String

### Parametre:

InputStr: Strengen, der skal søges

ReplacedBy (erstattet med): Nul, et eller flere tegn, der skal erstatte alle tegn, der ikke kan udskrives i InputStr (Standard = "")

### Eksempel:

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

## FindRegex

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

### Syntaks:

            SF_String.FindRegex(InputStr As String, Regex As String[, Start As Long[, CaseSensitive As Boolean[, Forward As Boolean]]]) As String

### Parametre:

InputStr: Strengen, der skal søges

Regex: Det regulære udtryk

Start: Den position i strengen, hvor søgningen begyndes. Den parameter videregives som reference, så efter udførelsen Start vil værdien pege på det første tegn i den fundne delstregn. Hvis der ikke findes nogen matchende delstreng, sættes Start til 0.

CaseSensitive (Stort og småt): Standard = False (falsk)

Forward (fremad): Bestemmer søgningens retning. Hvis True (sand), bevæger søgningen sig fremad. HvisFalse (falsk) bevæger søgningen sig baglæns (Standard = True (sand))

Hvis Forward = True (fremad = sand) i det første gennemløb, bør Start være lig med 1, mens Start i tilfældet Forward = False (fremad = falsk) bør være lig med Len(InputStr) (længde(Input streng))

### 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 lStarts nye værdi bruges til at blive ved med at søge i den samme input-streng ved at sætte parameteren Start til lStart + Len(result) (lStart + længde(resultat)) i den næste gentagelse.

## HashStr

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

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

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

### Syntaks:

              SF_String.HashStr(InputStr As String, Algorithm As String) As String

### Parametre:

InputStr: Strengen, der skal hashes. Den antages at være kodet i UTF-8. Hashing-algoritmen vil anse strengen for at være en strøm af bytes.

Algorithm (algoritme): En af de understøttede algoritmer, der er oplistet ovenfor, videregivet som en streng.

### Eksempel:

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

## HtmlEncode

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

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

### Syntaks:

            SF_String.HtmlEncode(InputStr) As String

### Parametre:

InputStr: Strengen, der skal indkodes

### Eksempel:

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

## IsADate

Returnerer True (sand), hvis input-strengen er en gyldig dato efter et bestemt datoformat.

### Syntaks:

            SF_String.IsADate(InputStr As String[, DateFormat As String]) As Boolean

### Parametre:

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

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

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

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

### Eksempel:

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

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

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

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

## IsAlpha

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

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

### Syntaks:

            SF_String.IsAlpha(InputStr As String) As Boolean

### Parametre:

InputStr (input-streng): Strengen, der skal tjekkes. Hvis tom, returnerer metoden False (falsk).

### Eksempel:

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

## IsAlphaNum

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

### Syntaks:

            SF_String.IsAlphaNum(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

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

## IsAscii

Returnerer True (falsk), hvis alle tegn i strengen er Ascii-tegn.

### Syntaks:

            SF_String.IsAscii(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

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

## IsDigit

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

### Syntaks:

            SF_String.IsDigit(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

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

## IsEmail

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

### Syntaks:

            SF_String.IsEmail(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

            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

## IsFileName

Returnerer True (sand), hvis strengen er et gyldigt filnavn i et givet operativsystem.

### Syntaks:

            SF_String.IsFileName(InputStr As String[, OSName As String]) As Boolean

### Parametre:

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

OSName (OS-navn): Operativsystemets navn, som en steng. Det kan være WINDOWS, LINUX, MACOSX eller SOLARIS.

Standardværdien er det aktuelle operativsystem, som scriptet kører på.

### Eksempel:

            MsgBox SF_String.IsFileName("~/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

## IsHexDigit

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

### Syntaks:

            SF_String.IsHexDigit(InputStr As String) As Boolean

### Parametre:

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

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

### Eksempel:

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

## IsIBAN

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

Denne metode er tilgængelig fra LibreOffice 7.2 og fremefter.

### Syntaks:

            SF_String.IsIBAN(InputStr As String) As Boolean

### Parametre:

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

### Returværdi:

True (sand), hvis strengen indeholder et gyldigt IBAN-nummer.

### Eksempel:

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

## IsIPv4

Returnerer True (sand), hvis strengen er en gyldig IP-adresse (v4).

### Syntaks:

            SF_String.IsIPv4(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

            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

## IsLike

Returnerer True (sand), hvis hele input-strengen matcher et givet mønster med jokere.

### Syntaks:

            SF_String.IsLike(InputStr As String, Pattern As String[, CaseSensitive As Boolean) As Boolean

### Parametre:

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

Pattern (mønster): Mønstret som en streng. Jokere er:

- "?" repræsenterer et vilkårligt enkelttegn;

- "*" repræsenterer intet, et eller flere tegn.

CaseSensitive (Stort og småt): Standard = False (falsk).

### Eksempel:

            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

## IsLower

Returnerer True (sand), hvis alle tegn i strengen er små bogstaver. Ikke-alfabetiske tegn ignoreres.

### Syntaks:

            SF_String.IsLower(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

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

## IsPrintable

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

### Syntaks:

            SF_String.IsPrintable(InputStr As String) As Boolean

### Parametre:

InputStr: Strengen, der skal tjekkes. Hvis tom, returnerer metoden False (sand).

### Eksempel:

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

## IsRegex

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

### Syntaks:

            SF_String.IsRegex(InputStr As String, Regex As String[, CaseSensitive As Boolean) As Boolean

### Parametre:

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

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

CaseSensitive (Stort og småt): Standard = False (falsk).

### Eksempel:

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

## IsSheetName

Returnerer True (sand), hvis input-strengen er et gyldigt arknavn i Calc.

### Syntaks:

              SF_String.IsSheetName(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

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

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

## IsTitle

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

### Syntaks:

            SF_String.IsTitle(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

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

## IsUpper

Returnerer True (sand), hvis alle bogstaver i strengen er skrevet med Store bogstaver. Ikke-alfabetiske tegn ignoreres.

### Syntaks:

            SF_String.IsUpper(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

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

## IsUrl

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

### Syntaks:

            SF_String.IsUrl(InputStr As String) As Boolean

### Parametre:

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

### Eksempel:

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

## IsWhitespace

Returnerer True (sand), hvis alle tegn i strengen er hvide rum

### Syntaks:

            SF_String.IsWhitespace(InputStr As String) As Boolean

### Parametre:

InputStr: Strengen, der skal tjekkes. Hvis tom, returnerer metodenFalse (falsk).

### Eksempel:

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

## JustifyCenter

Returnerer input-strengen centreret.

De indledende og afsluttende hvide rum skrælles af og de øvrige tegn fyldes op til venstre og højre op til en angiven total Length (længde) med tegnet Padding (fyld).

### Syntaks:

            SF_String.JustifyCenter(InputStr As String[, Length As Long[, Padding As String]]) As String

### Parametre:

InputStr: Strengen, der skal centreres. Hvis tom, returnerer metoden en tom streng.

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

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

Padding (fyld): Det enkelttegn, der skal bruges som fyld (standard = Ascii-mellemrumet " ").

### Eksempel:

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

## JustifyLeft

Returnerer input-strengen venstrejustereret.

De indledende hvide rum skrælles af og de øvrige tegn fuldstændiggøres til højre op til en angiven total Length (længde) med tegnet Padding (fyld).

### Syntaks:

            SF_String.JustifyLeft(InputStr As String[, Length As Long[, Padding As String]]) As String

### Parametre:

InputStr: Strengen, der skal venstrejusteres. Hvis tom, returnerer metoden en tom streng.

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

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

Padding (fyld): Det enkelttegn, der skal bruges som fyld (Standard = Ascii-mellemrummet " ").

### Eksempel:

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

## JustifyRight

Returnerer input-strengen højrejusteret.

De indledende hvide rum skrælles af og de øvrige tegn suppleres til venstre op til en bestemt totalLength (længde) med tegnet Padding (fyld).

### Syntaks:

            SF_String.JustifyRight(InputStr As String[, Length As Long[, Padding As String]]) As String

### Parametre:

InputStr: Strengen, der skal højrejusteres. Hvis tom, returnerer metoden en tom streng.

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

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

Padding (fyld): Det enkelttegn, der skal bruges som fyld (standard = Ascii-mellemrummet " ").

### Eksempel:

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

## Quote

Returnerer input-strengen omgivet af enkelte eller dobbelte anførselstegn. Eksisterende anførselstegn efterlades uændrede, herunder indledende og afsluttende anførselstegn.

### Syntaks:

            SF_String.Quote(InputStr As String, [QuoteChar As String]) As String

### Parametre:

InputStr: Strengen, der skal i anførselstegn.

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

### Eksempel:

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

Denne metode kan være nyttig, når du forbereder et streng-felt, der skal gemmes i en CSV-lignende fil, hvilket kræver, at tekstværdierne er omgivet af enkelte eller dobbelte anførselstegn.

## ReplaceChar

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

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

### Syntaks:

            SF_String.ReplaceChar(InputStr As String, Before As String, After As String) As String

### Parametre:

InputStr: Input-strengen, hvor erstatningerne skal ske.

'''Before: En streng med tegn, der vil blive søgt efter i input-strengen til erstatning.

After (efter): En streng med nye tegn, der skal erstatte dem, der er defineret i Before (før).

### Eksempel:

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

Tjenesten SF_String leverer nyttige delte konstanter til de latinske tegnsæt, som vist i eksemplet herunder:

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

## ReplaceRegex

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

### Syntaks:

            SF_String.ReplaceRegex(InputStr As String, Regex As String, NewStr As String[, CaseSensitive As Boolean]) As String

### Parametre:

InputStr: Input-streng, hvor erstatningerne vil ske.

Regex: Det regulære udtryk.

NewStr: Strengen, der erstatter.

CaseSensitive (Stort og småt): Standard = False (falsk).

### Eksempel:

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

## ReplaceStr

Erstatter nogle eller alle forekomster af en matrix af strenge i en streng med en matrix af nye strenge.

## Syntaks:

            SF_String.ReplaceStr(InputStr As String, OldStr As Variant, NewStr As Variant[, Occurrences As Long[, CaseSensitive As Boolean]]) As String

### Parametre:

InputStr: Input-strengen, hvor erstatningerne vil ske.

OldStr: En enkelt streng eller en matrix af strenge. Strenge med nul-længde ignorereres.

NewStr: Erstatningsstrengen eller en matrix af erstatningsstrenge.

Hvis OldStr (gammel streng) er en matrix, erstattes hver forekomst af ethvert element i OldStr med NewStr (ny streng).

Hvis OldStr (gammel streng) og NewStr (ny streng) er matrixer, sker erstatningerne en efter en op til UBound(NewStr) (UBound(ny streng)).

Hvis OldStr (gammel streng) har flere elementer end NewStr (ny streng), erstattes de resterende elementer i OldStr af det sidste element i NewStr.

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

Når OldStr (gammel streng) er en matrix, beregnes parameteren Occurrence (forekomst) enkeltvis for hvert element i matrixen.

CaseSensitive: Standard = False.

### Eksempel:

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

## Represent

Returnerer en streng med en læselig repræsentation af argumentet, afkortet til en given længde. Detter er nyttigt, hovedsagelig til aflusnings- og logging-formål.

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

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

Hvis den endelige længde overstiger parameteren MaxLength (maksimal længde), erstattes den sidste del af strengen med " ... (N)", hvor N er den samlede længde af den oprindelige streng før afkortning.

### Syntaks:

            SF_String.Represent(AnyValue As Variant[, MaxLength As Long]) As String

### Parametre:

AnyValue: Input-værdien, der skal repræsenteres. Det kan være enhver værdi, som for eksempel en streng, en matrix, et Basic-objekt, et UNO-objekt og så videre.

MaxLength: Den maximale længde af den resulterende streng. Standardværdien er 0, hvilket betyder, at der ikke er nogen grænse for længden af den resulterende repræsentation.

### Eksempel:

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

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

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

## Reverse

Returnerer input-strengen i omvendt rækkefølge.

Denne metode svarer til den indbyggede Basic-funktion StrReverse (Str omvendt), imidlertid med en bedre ydelse.

For at bruge funktionen StrReverse (Str omvendt), skal udtrykket OpTion VBASupport 1 være tilstede i modulet.

### Syntaks:

            SF_String.Reverse(InputStr As String) As String

### Parametre:

InputStr: Strengen, der skal vendes om.

### Eksempel:

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

## SplitLines

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

### Syntaks:

            SF_String.SplitLines(InputStr As String[, KeepBreaks As Long]) As Variant

### Parametre:

InputStr: Strengen, der skal opdeles.

KeepBreaks (behold skift): Når True, bevares linjeskift i output-matrixen (standard = False (falsk)).

### Eksempel:

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

## SplitNotQuoted

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

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

### Syntaks:

            SF_String.SplitNotQuoted(InputStr As String[, Delimiter As String], [Occurrences As Long], [QuoteChar As String]) As Variant

### Parametre:

InputStr: Strengen, der skal opdeles.

Delimiter (skilletegn): En streng af en eller flere tegn, der bruges som skilletegn. Standard-skilletegnet er mellemrums-tegnet.

Occurrences (forekomst): Det maksimale antal delstrenge, der skal returneres. Standardværdien er 0, hvilket betyder, at der ikke er nogen grænse for antallet af returnerede strenge.

QuoteChar (anførselstegn): Enten enkelt (') or dobbelt (") anførselstegn.

### Eksempel:

            a = SF_String.SplitNotQuoted("abc def ghi")
            ' a = Array("abc", "def", "ghi")
            a = SF_String.SplitNotQuoted("abc,""def,ghi""", ",")
            ' a = Array("abc", """def,ghi""")
            a = SF_String.SplitNotQuoted("abc,""def\"",ghi""", ",")
             ' a = Array("abc", """def\"",ghi""")
            a = SF_String.SplitNotQuoted("abc,""def\"",ghi"""",", ",")
            ' a = Array("abc", """def\"",ghi""", "")

## StartsWith

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

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

### Syntaks:

            SF_String.StartsWith(InputStr As String, Substring As String[, CaseSensitive As Boolean]) As Boolean

### Parametre:

InputStr: Strengen, der skal testes.

Substring (delstreng): Delstrengen, der skal søges efter i starten af InputStr.

CaseSensitive (Stort og småt): Standard = False (falsk).

### Eksempel:

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

## TrimExt

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

### Syntaks:

            SF_String.TrimExt(InputStr As String) As String

### Parametre:

InputStr: Strengen, der skal trimmes.

### Eksempel:

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

## Unescape

Konverterer enhver undvigelsessekvens (\\, \n, \r, \t) i input-strengen til deres tilsvarende Ascii-tegn.

### Syntaks:

            SF_String.Unescape(InputStr As String) As String

### Parametre:

InputStr: Strengen, der skal konverteres.

### Eksempel:

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

## Unquote

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

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

### Syntaks:

            SF_String.Unquote(InputStr As String, [QuoteChar As String]) As String

### Parametre:

InputStr: Strengen, som anførselstegnene skal fjernes fra.

QuoteChar (anførselstegn): Enten enkelt (') eller dobbelt (") anførselstegn (standard).

### Eksempel:

            Dim s as String
            s = SF_String.Unquote("""Noget tekst""") ' s = "Noget tekst" (uden omgivende anførselstegn)
            ' The string below does not have enclosing quotes, so it remains unchanged
            s = SF_String.Unquote("Noget tekst") ' s = "Noget tekst" (uændret)
            ' Anførselstegn inde i strengen fjernes ikke
            s = SF_String.Unquote("The ""true"" meaning") ' s = "The ""true"" meaning"

## Wrap

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

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

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

Symbolske linjeskift erstattes af deres tilsvarende Ascii-tegn.

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

### Syntaks:

              SF_String.Wrap(InputStr As String, [Width As Long], [TabSize As Integer]) As String

### Parametre:

InputStr: Strengen, der skal ombrydes.

Width (bredde): Det maksimale antal tegn på hver linje (standard = 70).

TabSize (tabulator-størrelse): Før teksten ombrydes, erstattes de eksisterende TAB-tegn Chr(9) med mellemrum. TabSize definerer TAB-stop på TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (standard = 8).

### Eksempel:

              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...")

Alle ScriptForge Basic-rutiner eller identifikatorer, som indledes med et understregningstegn "_" er reserveret til internt brug. De er ikke beregnet til brug i Basic-makroer.

Relaterede emner

ScriptForge.Array-tjeneste

indbygget Streng-funktion