Tjenesten ScriptForge.String (streng)

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

Definitions (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


tip

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


Tegn, der ikke kan udskrives:

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

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:

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

Properties (egenskaber)

Objektet SF_String (streng) giver følgende egenskaber:

Name (navn)

ReadOnly (skrivebeskyttet)

Description (beskrivelse)

sfCR

Yes (ja)

Carriage return (Vognretur): Chr(13)

sfCRLF

Yes (ja)

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

sfLF

Yes (ja)

Linefeed (linjeskift): Chr(10)

sfNEWLINE

Yes (ja)

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

sfTAB

Yes (ja)

Horizontal tabulation (vandret tabulator): Chr(9)


tip

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


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


note

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


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)
      
tip

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


EndsWith

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

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

Syntaks:


       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
      
tip

I eksemplet ovenfor kan lStarts nye værdi bruges til at blive ved med at søge i den samme input-streng ved at sætte parameteren Start til lStart + Len(result) (lStart + længde(resultat)) i den næste gentagelse.


HashStr

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

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

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

Syntaks:


          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
      
note

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


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


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

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.

note

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:

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
      
note

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


IsTitle

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

Syntaks:


        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"'
      
tip

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


ReplaceChar

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

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

Syntaks:


        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.

note

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

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.


Støt os venligst!