Dienst ScriptForge.String

Der Dienst String stellt eine Sammlung von Methoden zur Verarbeitung von Zeichenfolgen bereit. Diese Methoden können verwendet werden, um:

Definitionen

Zeilenumbrüche

Der Dienst String erkennt die folgenden Zeilenumbrüche:

Symbolischer Name

ASCII-Nummer

Zeilenvorschub
Vertikaler Tabulator
Wagenrücklauf
Zeilenvorschub + Wagenrücklauf
Dateitrenner
Gruppentrenner
Datensatztrenner
Nächste Zeile
Zeilentrenner
Absatztrenner

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


Leerzeichen

Der Dienst String erkennt die folgenden Leerzeichen:

Symbolischer Name

ASCII-Nummer

Leerzeichen
Horizontaler Tabulator
Zeilenvorschub
Vertikaler Tabulator
Seitenvorschub
Wagenrücklauf
Nächste Zeile
Geschütztes Leerzeichen
Zeilentrennzeichen
Absatztrennzeichen

32
9
10
11
12
13
133
160
8232
8233


Escape-Sequenzen

Nachfolgend finden Sie eine Liste von Escape-Sequenzen, die in Zeichenfolgen verwendet werden können.

Escape-Sequenz

Symbolischer Name

ASCII-Nummer

\n
\r
\t

Zeilenvorschub
Wagenrücklauf
Horizontaler Tabulator

10
13
9


tip

Um die Escape-Sequenz "\n" als tatsächliche Zeichenfolge interpretieren zu lassen, verwenden Sie einfach "\\n" anstelle von "\" & Chr(10).


Nicht druckbare Zeichen:

Zeichen, die in der Unicode-Zeichendatenbank als „Andere“ oder „Trennzeichen“ definiert sind, gelten als nicht druckbare Zeichen.

Steuerzeichen (ASCII-Code <= 0x1F) gelten ebenfalls als nicht druckbar.

Anführungszeichen innerhalb von Zeichenfolgen:

Um Anführungszeichen in Zeichenfolgen einzufügen, verwenden Sie \' (einfaches Anführungszeichen) oder \" (doppeltes Anführungszeichen). Beispielsweise:

Dienstaufruf

Vor der Verwendung des Dienstes ScriptForge.String muss die Bibliothek ScriptForge geladen werden mit:

In Basic

      GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
  

Durch das Laden der Bibliothek wird das Objekt SF_String erstellt, das verwendet werden kann, um die Methoden im Dienst String aufzurufen.

Die folgenden Codeschnipsel zeigen die drei Möglichkeiten zum Aufrufen von Methoden aus dem Dienst String (die Methode Capitalize wird als Beispiel verwendet):


    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
  
In Python

Der folgende Codeschnipsel veranschaulicht, wie Methoden aus dem Dienst String in Python-Skripten aufgerufen werden. Als Beispiel wird die Methode IsIPv4 verwendet.


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

Eigenschaften

Das Objekt SF_String stellt die folgenden Eigenschaften für Basic-Skripte bereit:

Name

Schreibgeschützt

Beschreibung

sfCR

Ja

Wagenrücklauf: Chr(13)

sfCRLF

Ja

Wagenrücklauf + Zeilenvorschub: Chr(13) & Chr(10)

sfLF

Ja

Zeilenvorschub: Chr(10)

sfNEWLINE

Ja

Wagenrücklauf + Zeilenvorschub, das je nach Betriebssystem
1) Chr(13) & Chr(10) oder
2) Zeilenvorschub: Chr(10)
sein kann.

sfTAB

Ja

Horizontale Tabulator: Chr(9)


tip

Sie können die obigen Eigenschaften verwenden, um die entsprechenden Zeichen in Zeichenfolgen zu identifizieren oder einzufügen. Beispielsweise kann der Zeilenvorschub mittels SF_String.sfLF ersetzt werden.


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

Das erste Argument der meisten Methoden ist die zu berücksichtigende Zeichenfolge. Sie wird immer als Referenz übergeben und unverändert gelassen. Methoden wie Capitalize, Escape und so weiter geben nach ihrer Ausführung eine neue Zeichenfolge zurück.


warning

Da Python über eine umfassende integrierte Zeichenfolgenunterstützung verfügt, sind die meisten Methoden im Dienst String nur für Basic-Skripts verfügbar. Die für Basic und Python verfügbaren Methoden sind: HashStr, IsADate, IsEmail, IsFileName, IsIBAN, IsIPv4, IsLike, IsSheetName, IsUrl, SplitNotQuoted und Wrap.


Capitalize

Schreibt das erste Zeichen jedes Wortes in der Eingabezeichenfolge groß.

Syntax:

svc.Capitalize(inputstr: str): str

Parameter:

inputstr: Die Zeichenfolge, die groß geschrieben werden soll.

Beispiel:


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

Count

Zählt die Anzahl der Vorkommen einer Teilzeichenfolge oder eines regulären Ausdrucks innerhalb einer Zeichenfolge.

Syntax:

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

Parameter:

inputstr: Die zu untersuchende Eingabezeichenfolge

substring: Die Teilzeichenfolge oder der reguläre Ausdruck, die/der während der Suche verwendet werden soll

isregex: Verwenden Sie True, wenn die Teilzeichenfolge ein regulärer Ausdruck ist (Standard = False)

casesensitive: Die Suche kann Groß- und Kleinschreibung beachten oder nicht (Standard = False).

Beispiel:


    ' Zählt die Vorkommen der Teilzeichenfolge "or" innerhalb der Eingabezeichenfolge (gibt 2 zurück)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "or", CaseSensitive := False)
    ' Zählt die Anzahl der Wörter mit nur Kleinbuchstaben (gibt 7 zurück)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", IsRegex := True, CaseSensitive := True)
  
tip

Weitere Informationen zu regulären Ausdrücken finden Sie in der Python-Dokumentation unter Regular Expression Operations .


EndsWith

Gibt True zurück, wenn eine Zeichenfolge mit einer angegebenen Teilzeichenfolge endet.

Die Funktion gibt False zurück, wenn entweder die Zeichenfolge oder die Teilzeichenfolge eine Länge = 0 haben oder wenn die Teilzeichenfolge länger als die Zeichenfolge ist.

Syntax:

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

Parameter:

inputstr: Die zu testende Zeichenfolge.

substring: Die zu durchsuchende Teilzeichenfolge am Ende von inputstr.

casesensitive: Die Suche kann Groß- und Kleinschreibung beachten oder nicht (Standard = False).

Beispiel:


    ' Gibt "True" zurück, weil die Methode mit dem Standard "CaseSensitive = False" aufgerufen wurde
    MsgBox SF_String.EndsWith("abcdefg", "EFG")
    ' Gibt aufgrund des Parameters "CaseSensitive" "False" zurück
    MsgBox SF_String.EndsWith("abcdefg", "EFG", CaseSensitive := True)
  

Escape

Konvertiert Zeilenumbrüche und Tabulatoren, die in der Eingabezeichenfolge enthalten sind, in ihre entsprechende Escape-Sequenz (\\, \n, \r, \t).

Syntax:

svc.Escape(inputstr: str): str

Parameter:

inputstr: Die zu konvertierende Zeichenfolge.

Beispiel:


    ' Gibt die Zeichenfolge "abc\n\tdef\\n" zurück
    MsgBox SF_String.Escape("abc" & Chr(10) & Chr(9) & "def\n")
  

ExpandTabs

Ersetzt Tabulatoren Chr(9) durch Leerzeichen, um das Verhalten von Tabulatoren zu replizieren.

Wird ein Zeilenumbruch gefunden, wird eine neue Zeile begonnen und der Zeichenzähler zurückgesetzt.

Syntax:

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

Parameter:

inputstr: Die zu erweiternde Zeichenfolge

tabsize: Mit diesem Parameter werden die Tabulatoren bestimmt nach der Formel: TabSize + 1, 2 * TabSize + 1 , … N * TabSize + 1 (Standard = 8)

Beispiel:


    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

Ersetzt alle nicht druckbaren Zeichen in der Eingabezeichenfolge durch ein vorgegebenes Zeichen.

Syntax:

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

Parameter:

inputstr: Die zu durchsuchende Zeichenfolge

replacedby: Null, ein oder mehrere Zeichen, die alle nicht druckbaren Zeichen in inputstr ersetzen (Standard = "")

Beispiel:


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

FindRegex

Findet in einer Zeichenfolge eine Teilzeichenfolge, die mit einem vorgegebenen regulären Ausdruck übereinstimmt.

Syntax:

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

Parameter:

inputstr: Die zu durchsuchende Zeichenfolge

regex: Der reguläre Ausdruck

start: Die Position in der Zeichenfolge, an der die Suche beginnt. Dieser Parameter wird als Referenz übergeben, sodass nach der Ausführung der Wert von start auf das erste Zeichen der gefundenen Teilzeichenfolge zeigt. Wenn keine passende Teilzeichenfolge gefunden wird, wird start auf 0 gesetzt.

casesensitive: Die Suche kann Groß- und Kleinschreibung beachten oder nicht (Standard = False).

forward: Bestimmt die Suchrichtung. Wenn True, geht die Suche vorwärts. Wenn False, geht die Suche rückwärts (Standard = True)

Bei der ersten Wiederholung, wenn forward = True, sollte start gleich 1 sein, wohingegen, wenn forward = False ist, sollte start gleich Len(inputstr) sein.

Beispiel:


    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

Im obigen Beispiel kann der neue Wert von lStart verwendet werden, um weiterhin dieselbe Eingabezeichenfolge zu suchen, indem der Parameter Start bei der nächsten Wiederholung auf lStart + Len(result) gesetzt wird.


HashStr

Hash-Funktionen werden in einigen kryptografischen Algorithmen, in digitalen Signaturen, Nachrichtenauthentifizierungscodes, Manipulationserkennung, Fingerabdrücken, Prüfsummen (Nachrichtenintegritätsprüfung), Hash-Tabellen, Kennwortspeicherung und vielem mehr verwendet.

Die Methode HashStr gibt das Ergebnis einer Hash-Funktion, die auf eine gegebene Zeichenfolge angewendet wird und einen angegebenen Algorithmus verwendet, als eine Zeichenfolge aus hexadezimalen Ziffern in Kleinbuchstaben zurück.

Die unterstützten Hash-Algorithmen sind: MD5, SHA1, SHA224, SHA256, SHA384 und SHA512.

Syntax:

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

Parameter:

inputstr: Die zu hashende Zeichenfolge. Es wird angenommen, dass es in UTF-8 codiert ist. Der Hash-Algorithmus betrachtet die Zeichenfolge als eine Folge von Bytes.

algorithm: Einer der oben aufgeführten unterstützten Algorithmen, der als Zeichenfolge übergeben wird.

Beispiel:

In Basic

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

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

HtmlEncode

Kodiert die Eingabezeichenfolge in die HTML-Zeichencodes und ersetzt Sonderzeichen durch ihre Entsprechungen mit &.

Beispielsweise würde das Zeichen é durch é oder einen entsprechenden numerischen HTML-Code ersetzt.

Syntax:

svc.HtmlEncode(inputstr: str): str

Parameter:

inputstr: Die zu codierende Zeichenfolge.

Beispiel:


    MsgBox SF_String.HtmlEncode("From α to ω")
    ' "<a href="https://a.b.com">From α to ω</a>"
  

IsADate

Gibt True zurück, wenn die Eingabezeichenfolge ein gültiges Datum gemäß einem angegebenen Datumsformat ist.

Syntax:

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

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück

dateformat: Das Datumsformat als Zeichenfolge. Kann "YYYY-MM-DD" (Standard), "DD-MM-YYYY" oder "MM-DD-YYYY" sein

Der Bindestrich (-) kann durch einen Punkt (.), einen Schrägstrich (/) oder ein Leerzeichen ersetzt werden.

Wenn das Format ungültig ist, gibt die Methode False zurück.

Beispiel:

In Basic

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

Diese Methode prüft das Format der Eingabezeichenfolge, ohne kalenderspezifische Prüfungen durchzuführen. Daher wird die Eingabezeichenfolge nicht auf Schaltjahre oder Monate mit 30 oder 31 Tagen getestet. Siehe hierzu die integrierte Funktion IsDate.


Das folgende Beispiel zeigt den Unterschied zwischen den Methoden IsADate (ScriptForge) und der Funktion IsDate (eingebaut).


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

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

IsAlpha

Gibt True zurück, wenn alle Zeichen in der Zeichenfolge alphabetisch sind.

Alphabetische Zeichen sind die Zeichen, die in der Unicode-Zeichendatenbank als Buchstaben definiert sind.

Syntax:

svc.IsAlpha(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:


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

IsAlphaNum

Gibt True zurück, wenn alle Zeichen in der Zeichenfolge alphabetisch, Ziffern oder "_" (Unterstrich) sind. Das erste Zeichen darf keine Ziffer sein.

Syntax:

svc.IsAlphaNum(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:


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

IsAscii

Gibt True zurück, wenn alle Zeichen in der Zeichenfolge ASCII-Zeichen sind.

Syntax:

svc.IsAscii(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:


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

IsDigit

Gibt True zurück, wenn alle Zeichen in der Zeichenfolge Ziffern sind.

Syntax:

svc.IsDigit(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:


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

IsEmail

Gibt True zurück, wenn die Zeichenfolge eine gültige E-Mail-Adresse ist.

Syntax:

svc.IsEmail(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:

In 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
  
In 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

Gibt True zurück, wenn die Zeichenfolge ein gültiger Dateiname in einem bestimmten Betriebssystem ist.

Syntax:

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

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

osname: Der Name des Betriebssystems als Zeichenfolge. Kann "WINDOWS", "LINUX", "MACOSX" oder "SOLARIS" sein.

Der Standardwert ist das aktuelle Betriebssystem, auf dem das Skript ausgeführt wird.

Beispiel:

In 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
  
In 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

Gibt True zurück, wenn alle Zeichen in der Zeichenfolge Hexadezimalziffern sind.

Syntax:

svc.IsHexDigit(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Den Hexadezimalziffern kann „0x“ oder „&H“ vorangestellt werden.

Beispiel:


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

IsIBAN

Gibt True zurück, wenn die Zeichenfolge eine gültige internationale Bankkontonummer (IBAN) ist. Beim Vergleich wird die Groß-/Kleinschreibung nicht beachtet.

Syntax:

svc.IsIBAN(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Rückgabewert:

True, wenn die Zeichenfolge eine gültige IBAN-Nummer enthält.

Beispiel:


    ' 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

Gibt True zurück, wenn die Zeichenfolge eine gültige IP(v4)-Adresse ist.

Syntax:

svc.IsIPv4(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:

In 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
  
In 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

Gibt True zurück, wenn die gesamte Eingabezeichenfolge mit einem bestimmten Muster übereinstimmt, das Platzhalter enthält.

Syntax:

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

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

pattern: Das Muster als Zeichenfolge. Platzhalter sind:

casesensitive: Die Suche kann Groß- und Kleinschreibung beachten oder nicht (Standard = False).

Beispiel:

In 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
  
In 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

Gibt True zurück, wenn alle Zeichen in der Zeichenfolge in Kleinbuchstaben geschrieben sind. Nicht alphabetische Zeichen werden ignoriert.

Syntax:

svc.IsLower(inputstr: str): bool

Parameter:

InputStr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:


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

IsPrintable

Gibt True zurück, wenn alle Zeichen in der Zeichenfolge druckbar sind.

Syntax:

svc.IsPrintable(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:


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

IsRegex

Gibt True zurück, wenn die gesamte Eingabezeichenfolge mit einem gegebenen regulären Ausdruck übereinstimmt.

Syntax:

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

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

regex: Der reguläre Ausdruck. Wenn leer, gibt die Methode False zurück.

casesensitive: Die Suche kann Groß- und Kleinschreibung beachten oder nicht (Standard = False).

Beispiel:


        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

Gibt True zurück, wenn die Eingabezeichenfolge ein gültiger Calc-Tabellenname ist.

Syntax:

svc.IsSheetName(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:

In Basic

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

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

Ein Tabellenname darf nicht die Zeichen [ ] * ? : / \ oder das Zeichen ' (Apostroph) als erstes oder letztes Zeichen enthalten.


IsTitle

Gibt True zurück, wenn das erste Zeichen jedes Wortes in Großbuchstaben und die anderen Zeichen in Kleinbuchstaben geschrieben sind.

Syntax:

svc.IsTitle(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:


    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

Gibt True zurück, wenn alle Zeichen in der Zeichenfolge in Großbuchstaben geschrieben sind. Nicht alphabetische Zeichen werden ignoriert.

Syntax:

svc.IsUpper(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:


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

IsUrl

Gibt True zurück, wenn die Zeichenfolge eine gültige absolute URL-Adresse (Uniform Resource Locator) ist. Es werden nur die Protokolle http, https und ftp unterstützt.

Syntax:

svc.IsUrl(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:

In Basic

    MsgBox SF_String.IsUrl("http://foo.bar/?q=Test%20URL-encoded%20stuff") ' True
    MsgBox SF_String.IsUrl("www.somesite.org") ' False
  
In 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

Gibt True zurück, wenn alle Zeichen in der Zeichenfolge Leerzeichen sind

Syntax:

svc.IsWhitespace(inputstr: str): bool

Parameter:

inputstr: Die zu prüfende Zeichenfolge. Wenn leer, gibt die Methode False zurück.

Beispiel:


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

JustifyCenter

Gibt die Eingabezeichenfolge zentriert zurück.

Die führenden und abschließenden Leerzeichen werden entfernt und die restlichen Zeichen werden links und rechts bis zu einer angegebenen Gesamtlänge lenght mit dem Zeichen padding aufgefüllt.

Syntax:

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

Parameter:

inputstr: The string to be center-justified. If empty, the method returns an empty string.

length: The length of the resulting string (default = the length of the input string).

Wenn die angegebene Länge kürzer als die zentrierte Eingabezeichenfolge ist, wird die zurückgegebene Zeichenfolge abgeschnitten.

padding: The single character to be used as padding (default = the Ascii space " ").

Beispiel:


    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

Gibt die Eingabezeichenfolge linksbündig zurück.

The leading white spaces are stripped and the remaining characters are completed to the right up to a specified total length with the character padding.

Syntax:

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

Parameter:

inputstr: The string to be left-justified. If empty, the method returns an empty string.

length: The length of the resulting string (default = the length of the input string).

Wenn die angegebene Länge kürzer als die linksbündige Eingabezeichenfolge ist, wird die zurückgegebene Zeichenfolge abgeschnitten.

padding: The single character to be used as padding (default = the Ascii space " ").

Beispiel:


    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

Gibt den Eingabestring rechtsbündig zurück.

The leading white spaces are stripped and the remaining characters are completed to the left up to a specified total length with the character padding.

Syntax:

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

Parameter:

inputstr: The string to be right-justified. If empty, the method returns an empty string.

length: The length of the resulting string (default = the length of the input string).

Wenn die angegebene Länge kürzer als die rechtsbündige Eingabezeichenfolge ist, wird die zurückgegebene Zeichenfolge abgeschnitten.

padding: The single character to be used as padding (default = the Ascii space " ").

Beispiel:


    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

Gibt die in einfache oder doppelte Anführungszeichen eingeschlossene Eingabezeichenfolge zurück. Vorhandene Anführungszeichen werden unverändert gelassen, einschließlich vorangestellter und/oder nachgestellter Anführungszeichen.

Syntax:

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

Parameter:

inputstr: The string to quote.

quotechar: Either the single (') or double (") quote (default).

Beispiel:


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

Diese Methode kann nützlich sein, wenn ein Zeichenfolgenfeld vorbereitet wird, das in einer CSV-ähnlichen Datei gespeichert werden soll, was erfordert, dass Textwerte in einfache oder doppelte Anführungszeichen gesetzt werden.


ReplaceChar

Ersetzt alle Vorkommen der im Parameter Before angegebenen Zeichen durch die entsprechenden Zeichen, die in After angegeben sind.

Wenn die Länge von Before größer als die Länge von After ist, werden die Restzeichen in Before durch das letzte Zeichen in After ersetzt.

Syntax:

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

Parameter:

inputstr: The input string on which replacements will occur.

before: A string with the characters that will be searched in the input string for replacement.

after: A string with the new characters that will replace those defined in before.

Beispiel:


    ' Ersetzt akzentuierte Zeichen
    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"
  

Der Dienst SF_String stellt nützliche öffentliche Konstanten für die lateinischen Zeichensätze bereit, wie im folgenden Beispiel gezeigt:


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

ReplaceRegex

Ersetzt alle Vorkommen eines bestimmten regulären Ausdrucks durch eine neue Zeichenfolge.

Syntax:

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

Parameter:

inputstr: The input string on which replacements will occur.

regex: The regular expression.

newstr: The replacing string.

casesensitive: The search can be case sensitive or not (Default = False).

Beispiel:


    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." (each lowercase letter is replaced by "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." (each word is replaced by "x")
  

ReplaceStr

Replaces in a string some or all occurrences of an array of strings by an array of new strings.

Syntax:

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

Parameter:

inputstr: The input string on which replacements will occur.

oldstr: A single string or an array of strings. Zero-length strings are ignored.

newstr: The replacing string or the array of replacing strings.

If oldstr is an array, each occurrence of any of the items in oldstr is replaced by newstr.

If oldstr and newstr are arrays, replacements occur one by one up to the UBound(newstr).

If oldstr has more entries than newstr, then the residual elements in oldstr are replaced by the last element in newstr.

occurrences: The maximum number of replacements. The default value is 0, meaning that all occurrences will be replaced.

When oldstr is an array, the occurrence parameter is computed separately for each item in the array.

casesensitive: The search can be case sensitive or not (Default = False).

Beispiel:


    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

Returns a string with a readable representation of the argument, truncated at a given length. This is useful mainly for debugging or logging purposes.

If the anyvalue parameter is an object, it will be enclosed with square brackets "[" and "]".

In strings, tabs and line breaks are replaced by \t, \n or \r.

If the final length exceeds the maxlength parameter, the latter part of the string is replaced by " ... (N)" where N is the total length of the original string before truncation.

Syntax:

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

Parameter:

anyvalue: The input value to be represented. It can be any value, such as a string, an array, a Basic object, a UNO object, etc.

maxlength: The maximum length of the resulting string. The default value is 0, meaning there is no limit to the length of the resulting representation.

Beispiel:


    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]"
  

Note that the representation of data types such as Arrays and ScriptForge.Dictionary object instances include both the data type and their values:


    ' An example with a Basic built-in Array
    MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
    ' "[ARRAY] (0:2) (1, 2, Text\there)"
    ' An example with a ScriptForge Array
    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)"
    ' An example with a ScriptForge Dictionary
    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

Returns the input string in reversed order.

This method is equivalent to the built-in StrReverse Basic function.

note

To use the StrReverse function, the statement Option VBASupport 1 must be present in the module.


Syntax:

svc.Reverse(inputstr: str): str

Parameter:

inputstr: The string to be reversed.

Beispiel:


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

SplitLines

Returns a zero-based array of strings with the lines in the input string. Each item in the array is obtained by splitting the input string at newline characters.

Syntax:

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

Parameter:

inputstr: The string to be split.

keepbreaks: When True, line breaks are preserved in the output array (default = False).

Beispiel:


    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

Splits a string into an array of elements using a specified delimiter.

If a quoted substring contains a delimiter, it is ignored. This is useful when parsing CSV-like records that contain quoted strings.

Syntax:

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

Parameter:

inputstr: The string to be split.

delimiter: A string of one or more characters that will be used as delimiter. The default delimiter is the Ascii space " " character.

occurrences: The maximum number of substrings to return. The default value is 0, meaning that there is no limit to the number of returned strings.

quotechar: Either the single (') or double (") quote.

Beispiel:

In 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""", "")
  
In Python

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

Beware of the differences between Basic and Python when representing strings. For example, in Basic two "" characters inside a string are interpreted as a single " character. In Python, strings enclosed with single quotes can contain " characters without having to double them.


StartsWith

Returns True if the first characters of a string are identical to a given substring.

This method returns False if either the input string or the substring have a length = 0 or when the substring is longer than the input string.

Syntax:

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

Parameter:

inputstr: The string to be tested.

substring: The substring to be searched at the start of inputstr.

casesensitive: The search can be case sensitive or not (Default = False).

Beispiel:


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

TrimExt

Returns the input string without its leading and trailing whitespaces.

Syntax:

svc.TrimExt(inputstr: str): str

Parameter:

inputstr: The string to trim.

Beispiel:


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

Unescape

Converts any escaped sequence (\\, \n, \r, \t) in the input string to their corresponding Ascii character.

Syntax:

svc.Unescape(inputstr: str): str

Parameter:

inputstr: The string to be converted.

Beispiel:


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

Unquote

Removes the single or double quotes enclosing the input string.

This is useful when parsing CSV-like records that contain quoted strings.

Syntax:

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

Parameter:

inputstr: The string to unquote.

quotechar: Either the single (') or double (") quote (default).

Beispiel:


    Dim s as String
    ' s = "Some text" (without enclosing quotes)
    s = SF_String.Unquote("""Some text""")
    ' The string below does not have enclosing quotes, so it remains unchanged
    ' s = "Some text" (unchanged)
    s = SF_String.Unquote("Some text")
    ' Quotes inside the string are not removed
    ' s = "The ""true"" meaning" (unchanged)
    s = SF_String.Unquote("The ""true"" meaning")
  

Wrap

Converts the input string into an array of substrings so that each item in the array has at most a given number of characters.

In practice, this method returns a zero-based array of output lines, without newlines at the end, except for the pre-existing line-breaks.

Tabs are expanded using the same procedure performed by the ExpandTabs method.

Symbolic line breaks are replaced by their equivalent Ascii characters.

If the wrapped output has no content, the returned array is empty.

Syntax:

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

Parameter:

inputstr: The string to wrap.

width: The maximum number of characters in each line (Default = 70).

tabsize: Before wrapping the text, the existing TAB Chr(9) characters are replaced with spaces. The argument tabsize defines the TAB stops at TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (Default = 8).

Beispiel:

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

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

Alle ScriptForge Basic-Routinen oder Bezeichner, denen ein Unterstrich "_" vorangestellt ist, sind für den internen Gebrauch reserviert. Sie sind nicht für die Verwendung in Basic-Makros oder Python-Skripten vorgesehen.