Υπηρεσία ScriptForge.String

Η υπηρεσία String παρέχει μια συλλογή μεθόδων για την επεξεργασία συμβολοσειρών. Αυτές οι μέθοδοι μπορούν να χρησιμοποιηθούν για:

Ορισμοί

Αλλαγές γραμμής

Η υπηρεσία String αναγνωρίζει τις ακόλουθες αλλαγές γραμμής:

Συμβολικό όνομα

Αριθμός ASCII

Τροφοδοσία γραμμής
Κατακόρυφη καρτέλα
Χαρακτήρας επαναφοράς
Χαρακτήρας επαναφοράς + Τροφοδοσία γραμμής
Διαχωριστικό αρχείων
Διαχωριστικό ομάδας
Διαχωριστικό εγγραφής
Επόμενη γραμμή
Διαχωριστικό γραμμών
Διαχωριστικό παραγράφου

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


Κενά

Η υπηρεσία String αναγνωρίζει τα ακόλουθα κενά:

Συμβολικό όνομα

Αριθμός ASCII

Κενό
Οριζόντια καρτέλα
Αλλαγή γραμμής
Κατακόρυφη καρτέλα
Αλλαγή σελίδας
Αλλαγή παραγράφου
Επόμενη γραμμή
Διάστημα χωρίς κενό
Διαχωριστικό γραμμών
Διαχωριστικό παραγράφων

32
9
10
11
12
13
133
160
8232
8233


Ακολουθίες διαφυγής

Παρακάτω είναι ένας κατάλογος με ακολουθίες διαφυγής που μπορούν να χρησιμοποιηθούν σε συμβολοσειρές.

Ακολουθία διαφυγής

Συμβολικό όνομα

Αριθμός ASCII

\n
\r
\t

Αλλαγή γραμμής
Αλλαγή παραγράφου
Οριζόντια καρτέλα

10
13
9


tip

Για να ερμηνευτεί η ακολουθία διαφυγής "\n" ως πραγματική συμβολοσειρά, χρησιμοποιήστε απλώς "\\n" αντί για "\" & Chr(10).


Μη εκτυπώσιμοι χαρακτήρες:

Οι χαρακτήρες που ορίζονται στη βάση δεδομένων χαρακτήρων Unicode ως "Άλλο" ή "Διαχωριστικό" θεωρούνται ως μη εκτυπώσιμοι χαρακτήρες.

Οι χαρακτήρες ελέγχου (κωδικός ASCII <= 0x1F) θεωρούνται επίσης ως μη εκτυπώσιμοι.

Εισαγωγικά μέσα σε συμβολοσειρές:

Για να προσθέσετε εισαγωγικά σε συμβολοσειρές χρησιμοποιήστε \' (μονό εισαγωγικό) ή \" (διπλό εισαγωγικό). Για παράδειγμα:

Κλήση υπηρεσίας

Πριν χρησιμοποιήσετε την υπηρεσία ScriptForge.String, η βιβλιοθήκη ScriptForge πρέπει να φορτωθεί χρησιμοποιώντας:

Σε Basic

      GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
  

Η φόρτωση της βιβλιοθήκης θα δημιουργήσει το αντικείμενο SF_String που μπορεί να χρησιμοποιηθεί για την κλήση των μεθόδων στην υπηρεσία String.

Τα παρακάτω αποσπάσματα κώδικα δείχνουν τους τρεις τρόπους κλήσης μεθόδων από την υπηρεσία String (η μέθοδος Capitalize χρησιμοποιείται ως παράδειγμα):


    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
  
Σε Python

Το παρακάτω απόσπασμα κώδικα δείχνει πώς να καλέσετε μεθόδους από την υπηρεσία String σε σενάρια Python. Ως παράδειγμα χρησιμοποιείται η μέθοδος IsIPv4.


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

Ιδιότητες

Το αντικείμενο SF_String παρέχει τις ακόλουθες ιδιότητες για τα σενάρια Basic:

Όνομα

Μόνο για ανάγνωση

Περιγραφή

sfCR

Ναι

Αλλαγή παραγράφου: Chr(13)

sfCRLF

Ναι

Αλλαγή παραγράφου + αλλαγή γραμμής: Chr(13) & Chr(10)

sfLF

Ναι

Αλλαγή γραμμής: Chr(10)

sfNEWLINE

Ναι

Αλλαγή παραγράφου + αλλαγή γραμμής, που μπορεί να είναι
1) Chr(13) & Chr(10) ή
2) Αλλαγή γραμμής: Chr(10)
ανάλογα με το λειτουργικό σύστημα.

sfTAB

Ναι

Οριζόντια στηλοθέτηση: Chr(9)


tip

Μπορείτε να χρησιμοποιήσετε τις παραπάνω ιδιότητες για να αναγνωρίσετε ή να εισαγάγετε τους αντίστοιχους χαρακτήρες μέσα σε συμβολοσειρές. Για παράδειγμα, η αλλαγή γραμμής μπορεί να αντικατασταθεί από SF_String.sfLF.


Κατάλογος μεθόδων στην υπηρεσία String (συμβολοσειρά)

Capitalize
Count
EndsWith
Escape
ExpandTabs
FilterNotPrintable
FindRegex
HashStr
HtmlEncode
IsADate
IsAlpha
IsAlphaNum
IsAscii
IsDigit
IsEmail

IsFileName
IsHexDigit
IsIBAN
IsIPv4
IsLike
IsLower
IsPrintable
IsRegex
IsSheetName
IsTitle
IsUpper
IsUrl
IsWhitespace
JustifyCenter
JustifyLeft

JustifyRight
Quote
ReplaceChar
ReplaceRegex
ReplaceStr
Represent
Reverse
SplitLines
SplitNotQuoted
StartsWith
TrimExt
Unescape
Unquote
Wrap


note

Το πρώτο όρισμα των περισσότερων μεθόδων είναι η συμβολοσειρά που πρέπει να ληφθεί υπόψη. Μεταβιβάζεται πάντα με αναφορά και μένει αμετάβλητο. Μέθοδοι όπως Capitalize (Κεφαλαιοποίηση), Escape κ.λπ. επιστρέφουν μια νέα συμβολοσειρά μετά την εκτέλεσή τους.


warning

Επειδή η Python διαθέτει ολοκληρωμένη ενσωματωμένη υποστήριξη συμβολοσειρών, οι περισσότερες από τις μεθόδους στην υπηρεσία String είναι διαθέσιμες μόνο για σενάρια Basic. Οι διαθέσιμες μέθοδοι για Basic και Python είναι: HashStr, IsADate, IsEmail, IsFileName, IsIBAN, IsIPv4, IsLike, IsSheetName, IsUrl, SplitNotQuoted και Wrap.


Capitalize

Κεφαλοποιεί τον πρώτο χαρακτήρα από κάθε λέξη στη συμβολοσειρά εισόδου.

Σύνταξη:

svc.Capitalize(inputstr: str): str

Παράμετροι:

inputstr: Η συμβολοσειρά που θα κεφαλαιοποιηθεί.

Παράδειγμα:


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

Count

Μετρά τον αριθμό των εμφανίσεων μιας υποσυμβολοσειράς ή μιας κανονικής έκφρασης μέσα σε μια συμβολοσειρά.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά εισόδου που θα εξεταστεί

substring: Η υποσυμβολοσειρά ή η κανονική έκφραση που θα χρησιμοποιηθεί κατά την αναζήτηση

isregex: Χρησιμοποιήστε το True, εάν η υποσυμβολοσειρά είναι κανονική έκφραση (Προεπιλογή = False)

casesensitive (διάκριση πεζών-κεφαλαίων): Η αναζήτηση μπορεί να κάνει διάκριση πεζών-κεφαλαίων ή όχι (Προεπιλογή = False).

Παράδειγμα:


    'Μετράει τις εμφανίσεις της υποσυμβολοσειράς "ή" μέσα στη συμβολοσειρά εισόδου (επιστρέφει 2)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "or", CaseSensitive := False)
    'Μετράει τον αριθμό των λέξεων μόνο με πεζά γράμματα (επιστρέφει 7)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", IsRegex := True, CaseSensitive := True)
  
tip

Για να μάθετε περισσότερα σχετικά με τις κανονικές εκφράσεις, ανατρέξτε στην τεκμηρίωση της Python στις Λειτουργίες κανονικών εκφράσεων .


EndsWith

Επιστρέφει True, εάν μια συμβολοσειρά τελειώνει με μια καθορισμένη υποσυμβολοσειρά.

Η συνάρτηση επιστρέφει False, όταν είτε η συμβολοσειρά, είτε η υποσυμβολοσειρά έχουν μήκος = 0, ή όταν η υποσυμβολοσειρά είναι μεγαλύτερη από τη συμβολοσειρά.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που θα δοκιμαστεί.

substring: Η υποσυμβολοσειρά προς αναζήτηση στο τέλος του inputstr.

casesensitive (διάκριση πεζών-κεφαλαίων): Η αναζήτηση μπορεί να κάνει διάκριση πεζών-κεφαλαίων ή όχι (Προεπιλογή = False).

Παράδειγμα:


    'Επιστρέφει True, επειδή η μέθοδος κλήθηκε με το προεπιλεγμένο CaseSensitive = False
    MsgBox SF_String.EndsWith("abcdefg", "EFG")
    'Επιστρέφει False λόγω της παραμέτρου CaseSensitive
    MsgBox SF_String.EndsWith("abcdefg", "EFG", CaseSensitive := True)
  

Escape

Μετατρέπει τις αλλαγές γραμμής και τις καρτέλες που περιέχονται στη συμβολοσειρά εισόδου στην ισοδύναμη ακολουθία διαφυγής (\\, \n, \r, \t).

Σύνταξη:

svc.Escape(inputstr: str): str

Παράμετροι:

inputstr: Η συμβολοσειρά που θα μετατραπεί.

Παράδειγμα:


    'Επιστρέφει τη συμβολοσειρά "abc\n\tdef\\n"
    MsgBox SF_String.Escape("abc" & Chr(10) & Chr(9) & "def\n")
  

ExpandTabs

Αντικαθιστά τους χαρακτήρες στηλοθέτη Chr(9) με χαρακτήρες διαστήματος για να αναπαράγει τη συμπεριφορά των ορίων στηλοθέτη.

Εάν βρεθεί μια αλλαγή γραμμής, ξεκινά μια νέα γραμμή και επαναφέρεται ο μετρητής χαρακτήρων.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που πρόκειται να επεκταθεί

tabsize: Αυτή η παράμετρος χρησιμοποιείται για τον προσδιορισμό των ορίων στηλοθετών χρησιμοποιώντας τον τύπο: TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (Προεπιλογή = 8)

Παράδειγμα:


    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

Αντικαθιστά όλους τους μη εκτυπώσιμους χαρακτήρες στη συμβολοσειρά εισόδου με έναν δεδομένο χαρακτήρα.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά προς αναζήτηση

replacedby: Μηδέν, ένας ή περισσότεροι χαρακτήρες που θα αντικαταστήσουν όλους τους μη εκτυπώσιμους χαρακτήρες στο inputstr (Προεπιλογή = "")

Παράδειγμα:


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

FindRegex

Βρίσκει σε μια συμβολοσειρά μια υποσυμβολοσειρά που ταιριάζει με μια δεδομένη κανονική έκφραση.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά προς αναζήτηση

regex: Η κανονική έκφραση

start: Η θέση στη συμβολοσειρά όπου θα ξεκινήσει η αναζήτηση. Αυτή η παράμετρος μεταβιβάζεται με αναφορά, επομένως μετά την εκτέλεση η τιμή start θα δείχνει στον πρώτο χαρακτήρα της υποσυμβολοσειράς που βρέθηκε. Εάν δεν βρεθεί αντίστοιχη υποσυμβολοσειρά, το start θα οριστεί σε 0.

casesensitive (διάκριση πεζών-κεφαλαίων): Η αναζήτηση μπορεί να κάνει διάκριση πεζών-κεφαλαίων ή όχι (Προεπιλογή = False).

forward (προς τα εμπρός): Καθορίζει την κατεύθυνση της αναζήτησης. Εάν είναι True, η αναζήτηση προχωρά. Εάν η αναζήτηση είναι False μετακινείται προς τα πίσω (Προεπιλογή = True)

Στην πρώτη επανάληψη, εάν forward = True, τότε το start θα πρέπει να είναι ίσο με 1, ενώ εάν forward = False τότε το start πρέπει να είναι ίσο με Len(inputstr)

Παράδειγμα:


    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

Στο παραπάνω παράδειγμα, η νέα τιμή του lStart μπορεί να χρησιμοποιηθεί για να συνεχιστεί η αναζήτηση της ίδιας συμβολοσειράς εισόδου ορίζοντας την παράμετρο Start σε lStart + Len(result) στην επόμενη επανάληψη.


HashStr

Οι συναρτήσεις κατακερματισμού χρησιμοποιούνται σε ορισμένους κρυπτογραφικούς αλγόριθμους, σε ψηφιακές υπογραφές, κωδικούς ταυτοποίησης μηνυμάτων, ανίχνευση χειρισμού, δακτυλικά αποτυπώματα, αθροίσματα ελέγχου (έλεγχος ακεραιότητας μηνυμάτων), πίνακες κατακερματισμού, αποθήκευση κωδικών πρόσβασης και πολλά άλλα.

Η μέθοδος HashStr επιστρέφει το αποτέλεσμα μιας συνάρτησης κατακερματισμού που εφαρμόζεται σε μια δεδομένη συμβολοσειρά και χρησιμοποιώντας έναν καθορισμένο αλγόριθμο, ως συμβολοσειρά πεζών δεκαεξαδικών ψηφίων.

Οι αλγόριθμοι κατακερματισμού που υποστηρίζονται είναι: MD5, SHA1, SHA224, SHA256, SHA384 και SHA512.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά προς κατακερματισμό. Υποτίθεται ότι είναι κωδικοποιημένη σε UTF-8. Ο αλγόριθμος κατακερματισμού θα θεωρήσει τη συμβολοσειρά ως μια ροή ψηφιολέξεων (bytes).

algorithm (αλγόριθμος): Ένας από τους υποστηριζόμενους αλγορίθμους που αναφέρονται παραπάνω, μεταβιβάστηκε ως συμβολοσειρά.

Παράδειγμα:

Σε Basic

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

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

HtmlEncode

Κωδικοποιεί τη συμβολοσειρά εισόδου στους κωδικούς χαρακτήρων HTML, αντικαθιστώντας τους ειδικούς χαρακτήρες από τους αντίστοιχους &.

Για παράδειγμα, ο χαρακτήρας é θα αντικατασταθεί από &eacute; ή έναν ισοδύναμο αριθμητικό κωδικό HTML.

Σύνταξη:

svc.HtmlEncode(inputstr: str): str

Παράμετροι:

inputstr: Η συμβολοσειρά προς κωδικοποίηση.

Παράδειγμα:


    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

Επιστρέφει True εάν η συμβολοσειρά εισόδου είναι έγκυρη ημερομηνία σύμφωνα με μια καθορισμένη μορφή ημερομηνίας.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False

dateformat: Η μορφή ημερομηνίας, ως συμβολοσειρά. Μπορεί να είναι είτε "ΕΕΕΕ-ΜΜ-ΗΗ" (προεπιλογή), "ΗΗ-ΜΜ-ΕΕΕΕ" ή "ΜΜ-ΗΗ-ΕΕΕΕ"

Η παύλα (-) μπορεί να αντικατασταθεί από μια τελεία (.), μια κάθετο (/) ή ένα διάστημα.

Εάν η μορφή είναι άκυρη, η μέθοδος επιστρέφει False.

Παράδειγμα:

Σε Basic

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

Αυτή η μέθοδος ελέγχει τη μορφή της συμβολοσειράς εισόδου χωρίς να πραγματοποιεί ελέγχους που αφορούν το ημερολόγιο. Ως εκ τούτου, δεν δοκιμάζει τη συμβολοσειρά εισόδου για δίσεκτα έτη, ή μήνες με 30 ή 31 ημέρες. Για αυτό, ανατρέξτε στην ενσωματωμένη συνάρτηση IsDate.


Το παρακάτω παράδειγμα δείχνει τη διαφορά μεταξύ των μεθόδων IsADate (ScriptForge) και της συνάρτησης IsDate (ενσωματωμένη).


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

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

IsAlpha

Επιστρέφει το True εάν όλοι οι χαρακτήρες της συμβολοσειράς είναι αλφαβητικοί.

Οι αλφαβητικοί χαρακτήρες είναι εκείνοι οι χαρακτήρες που ορίζονται στη Βάση δεδομένων χαρακτήρων Unicode ως Letter (Γράμμα).

Σύνταξη:

svc.IsAlpha(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:


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

IsAlphaNum

Επιστρέφει True εάν όλοι οι χαρακτήρες στη συμβολοσειρά είναι αλφαβητικά, ψηφία ή "_" (υπογράμμιση). Ο πρώτος χαρακτήρας δεν πρέπει να είναι ψηφίο.

Σύνταξη:

svc.IsAlphaNum(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:


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

IsAscii

Επιστρέφει True εάν όλοι οι χαρακτήρες της συμβολοσειράς είναι χαρακτήρες ASCII.

Σύνταξη:

svc.IsAscii(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:


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

IsDigit

Επιστρέφει True εάν όλοι οι χαρακτήρες στη συμβολοσειρά είναι ψηφία.

Σύνταξη:

svc.IsDigit(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:


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

IsEmail

Επιστρέφει True εάν η συμβολοσειρά είναι έγκυρη διεύθυνση ηλ. αλληλογραφίας.

Σύνταξη:

svc.IsEmail(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:

Σε 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
  
Σε 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

Επιστρέφει True εάν η συμβολοσειρά είναι έγκυρο όνομα αρχείου σε ένα δεδομένο λειτουργικό σύστημα.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

osname: Το όνομα του λειτουργικού συστήματος, ως συμβολοσειρά. Μπορεί να είναι "WINDOWS", "LINUX", "MACOSX" ή "SOLARIS".

Η προεπιλεγμένη τιμή είναι το τρέχον λειτουργικό σύστημα στο οποίο εκτελείται η δέσμη ενεργειών.

Παράδειγμα:

Σε 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
  
Σε 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

Επιστρέφει True εάν όλοι οι χαρακτήρες στη συμβολοσειρά είναι δεκαεξαδικά ψηφία.

Σύνταξη:

svc.IsHexDigit(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Τα δεκαεξαδικά ψηφία μπορούν να έχουν το πρόθεμα "0x" ή "&H".

Παράδειγμα:


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

IsIBAN

Επιστρέφει True εάν η συμβολοσειρά είναι έγκυρος αριθμός διεθνούς τραπεζικού λογαριασμού (IBAN). Η σύγκριση δεν κάνει διάκριση πεζών-κεφαλαίων.

Σύνταξη:

svc.IsIBAN(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Επιστρεφόμενη τιμή:

True εάν η συμβολοσειρά περιέχει έγκυρο αριθμό IBAN.

Παράδειγμα:


    ' 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

Επιστρέφει True εάν η συμβολοσειρά είναι έγκυρη διεύθυνση IP(v4).

Σύνταξη:

svc.IsIPv4(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:

Σε 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
  
Σε 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

Επιστρέφει True εάν ολόκληρη η συμβολοσειρά εισόδου ταιριάζει με ένα δεδομένο μοτίβο που περιέχει χαρακτήρες υποκατάστασης.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

pattern (μοτίβο): Το μοτίβο ως συμβολοσειρά. Οι χαρακτήρες υποκατάστασης είναι:

casesensitive (διάκριση πεζών-κεφαλαίων): Η αναζήτηση μπορεί να κάνει διάκριση πεζών-κεφαλαίων ή όχι (Προεπιλογή = False).

Παράδειγμα:

Σε 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
  
Σε 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

Επιστρέφει True εάν όλοι οι χαρακτήρες στη συμβολοσειρά είναι με πεζούς χαρακτήρες. Οι μη αλφαβητικοί χαρακτήρες αγνοούνται.

Σύνταξη:

svc.IsLower(inputstr: str): bool

Παράμετροι:

InputStr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:


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

IsPrintable

Επιστρέφει True εάν όλοι οι χαρακτήρες της συμβολοσειράς είναι εκτυπώσιμοι.

Σύνταξη:

svc.IsPrintable(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:


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

IsRegex

Επιστρέφει True εάν ολόκληρη η συμβολοσειρά εισόδου ταιριάζει με μια δεδομένη κανονική έκφραση.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

regex: Η κανονική έκφραση. Εάν είναι κενή, η μέθοδος επιστρέφει False.

casesensitive (διάκριση πεζών-κεφαλαίων): Η αναζήτηση μπορεί να κάνει διάκριση πεζών-κεφαλαίων ή όχι (Προεπιλογή = False).

Παράδειγμα:


        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

Επιστρέφει True εάν η συμβολοσειρά εισόδου είναι ένα έγκυρο όνομα φύλλου Calc.

Σύνταξη:

svc.IsSheetName(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:

Σε Basic

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

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

Ένα όνομα φύλλου δεν πρέπει να περιέχει τους χαρακτήρες [ ] * ? : / \ ή τον χαρακτήρα ' (απόστροφος) ως πρώτο ή τελευταίο χαρακτήρα.


IsTitle

Επιστρέφει True εάν ο πρώτος χαρακτήρας κάθε λέξης είναι με κεφαλαία και οι άλλοι χαρακτήρες με πεζούς.

Σύνταξη:

svc.IsTitle(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:


    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

Επιστρέφει True εάν όλοι οι χαρακτήρες στη συμβολοσειρά είναι με κεφαλαία. Οι μη αλφαβητικοί χαρακτήρες αγνοούνται.

Σύνταξη:

svc.IsUpper(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:


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

IsUrl

Επιστρέφει True εάν η συμβολοσειρά είναι μια έγκυρη απόλυτη διεύθυνση URL (Uniform Resource Locator). Υποστηρίζονται μόνο τα πρωτόκολλα http, https και ftp.

Σύνταξη:

svc.IsUrl(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:

Σε Basic

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

Επιστρέφει True εάν όλοι οι χαρακτήρες στη συμβολοσειρά είναι κενά διαστήματα

Σύνταξη:

svc.IsWhitespace(inputstr: str): bool

Παράμετροι:

inputstr: Η συμβολοσειρά που θα ελεγχθεί. Εάν είναι κενή, η μέθοδος επιστρέφει False.

Παράδειγμα:


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

JustifyCenter

Επιστρέφει τη συμβολοσειρά εισόδου με πλήρη στοίχιση στο κέντρο.

Τα κενά διαστήματα στηναρχή και στο τέλος αφαιρούνται και οι υπόλοιποι χαρακτήρες συμπληρώνονται αριστερά και δεξιά μέχρι ένα καθορισμένο συνολικό length (μήκος) με τον χαρακτήρα padding.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που πρέπει να στοιχιστεί πλήρως στο κέντρο. Εάν είναι κενή, η μέθοδος επιστρέφει μια κενή συμβολοσειρά.

length (μήκος): Το μήκος της συμβολοσειράς που προκύπτει (προεπιλογή = το μήκος της συμβολοσειράς εισόδου).

Εάν το καθορισμένο μήκος είναι μικρότερο από τη συμβολοσειρά εισόδου με πλήρη στοίχιση στο κέντρο, τότε η συμβολοσειρά που επιστρέφεται περικόπτεται.

padding: Ο μοναδικός χαρακτήρας που θα χρησιμοποιηθεί ως συμπλήρωμα (προεπιλογή = το διάστημα ASCII " ").

Παράδειγμα:


    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

Επιστρέφει τη συμβολοσειρά εισόδου με πλήρη στοίχιση αριστερά.

Τα αρχικά κενά διαστήματα αφαιρούνται και οι υπόλοιποι χαρακτήρες συμπληρώνονται προς τα δεξιά μέχρι ένα καθορισμένο συνολικό length (μήκος) με τον χαρακτήρα padding (συμπλήρωσης).

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που πρέπει να στοιχιστεί πλήρως αριστερά. Εάν είναι κενή, η μέθοδος επιστρέφει μια κενή συμβολοσειρά.

length (μήκος): Το μήκος της συμβολοσειράς που προκύπτει (προεπιλογή = το μήκος της συμβολοσειράς εισόδου).

Εάν το καθορισμένο μήκος είναι μικρότερο από την συμβολοσειρά εισόδου με πλήρη αριστερή στοίχιση, τότε η συμβολοσειρά που επιστρέφεται περικόπτεται.

padding: Ο μοναδικός χαρακτήρας που θα χρησιμοποιηθεί ως συμπλήρωμα (προεπιλογή = το διάστημα ASCII " ").

Παράδειγμα:


    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

Επιστρέφει τη συμβολοσειρά εισόδου με πλήρη στοίχιση δεξιά.

Τα αρχικά κενά διαστήματα αφαιρούνται και οι υπόλοιποι χαρακτήρες συμπληρώνονται προς τα αριστερά μέχρι ένα καθορισμένο συνολικό length (μήκος) με τον χαρακτήρα padding (συμπλήρωσης).

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που πρέπει να στοιχιστεί πλήρως δεξιά. Εάν είναι κενή, η μέθοδος επιστρέφει μια κενή συμβολοσειρά.

length (μήκος): Το μήκος της συμβολοσειράς που προκύπτει (προεπιλογή = το μήκος της συμβολοσειράς εισόδου).

Εάν το καθορισμένο μήκος είναι μικρότερο από τη συμβολοσειρά εισόδου με πλήρη στοίχιση δεξιά, τότε η συμβολοσειρά που επιστρέφεται περικόπτεται.

padding: Ο μοναδικός χαρακτήρας που θα χρησιμοποιηθεί ως συμπλήρωμα (προεπιλογή = το διάστημα ASCII " ").

Παράδειγμα:


    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

Επιστρέφει τη συμβολοσειρά εισόδου που περικλείεται σε μονά ή διπλά εισαγωγικά. Τα υπάρχοντα εισαγωγικά παραμένουν αμετάβλητα, συμπεριλαμβανομένων των αρχικών και/ή των τελικών εισαγωγικών.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που θα μπει σε εισαγωγικά.

quotechar (χαρακτήρας εισαγωγικού): Είτε το μονό (') είτε το διπλό (") εισαγωγικό (προεπιλογή).

Παράδειγμα:


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

Αυτή η μέθοδος μπορεί να είναι χρήσιμη κατά την προετοιμασία ενός πεδίου συμβολοσειράς που θα αποθηκευτεί σε ένα αρχείο που μοιάζει με csv, το οποίο απαιτεί οι τιμές κειμένου να περικλείονται με μονά ή διπλά εισαγωγικά.


ReplaceChar

Αντικαθιστά όλες τις εμφανίσεις των χαρακτήρων που καθορίζονται στην παράμετρο Before (Πριν) με τους αντίστοιχους χαρακτήρες που καθορίζονται στο After (Μετά).

Εάν το μήκος του Before είναι μεγαλύτερο από το μήκος του After, οι υπόλοιποι χαρακτήρες στο Before αντικαθίστανται από τον τελευταίο χαρακτήρα στο After .

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά εισόδου στην οποία θα πραγματοποιηθούν αντικαταστάσεις.

πριν: Μια συμβολοσειρά με τους χαρακτήρες που θα αναζητηθούν στη συμβολοσειρά εισόδου για αντικατάσταση.

after: Μια συμβολοσειρά με τους νέους χαρακτήρες που θα αντικαταστήσουν αυτούς που ορίζονται στο before.

Παράδειγμα:


    ' Αντικαθιστά τους τονισμένους χαρακτήρες
    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"
  

Η υπηρεσία SF_String παρέχει χρήσιμες δημόσιες σταθερές για τα σύνολα λατινικών χαρακτήρων, όπως φαίνεται στο παρακάτω παράδειγμα:


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

ReplaceRegex

Αντικαθιστά όλες τις εμφανίσεις μιας δεδομένης κανονικής έκφρασης με μια νέα συμβολοσειρά.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά εισόδου στην οποία θα πραγματοποιηθούν αντικαταστάσεις.

regex: Η κανονική έκφραση.

newstr: Η συμβολοσειρά που αντικαθιστά την προηγούμενη.

casesensitive (διάκριση πεζών-κεφαλαίων): Η αναζήτηση μπορεί να κάνει διάκριση πεζών-κεφαλαίων ή όχι (Προεπιλογή = False).

Παράδειγμα:


    MsgBox SF_String.ReplaceRegex("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "[a-z]", "x", CaseSensitive := True)
    ' "Lxxxx xxxxx xxxxx xxx xxxx, xxxxxxxxxxxxxxxxxxxxx xxxx." (κάθε πεζό γράμμα αντικαθίσταται από "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." (κάθε λέξη αντικαθίσταται από "x")
  

ReplaceStr

Αντικαθιστά σε μια συμβολοσειρά μερικές ή όλες τις εμφανίσεις μιας σειράς συμβολοσειρών με μια σειρά νέων συμβολοσειρών.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά εισόδου στην οποία θα πραγματοποιηθούν αντικαταστάσεις.

oldstr: Μια μεμονωμένη συμβολοσειρά ή ένας πίνακας από συμβολοσειρές. Οι συμβολοσειρές μηδενικού μήκους αγνοούνται.

newstr: Η συμβολοσειρά αντικατάστασης ή ο πίνακας συμβολοσειρών αντικατάστασης.

Εάν το oldstr είναι ένας πίνακας, κάθε εμφάνιση οποιουδήποτε από τα στοιχεία στο oldstr αντικαθίσταται από newstr.

Εάν οι oldstr και newstr είναι πίνακες, οι αντικαταστάσεις πραγματοποιούνται μία προς μία μέχρι το UBound(newstr).

Εάν το oldstr έχει περισσότερες καταχωρήσεις από το newstr, τότε τα υπολειπόμενα στοιχεία στο oldstr αντικαθίστανται από το τελευταίο στοιχείο στο newstr .

occurrences (εμφανίσεις): Ο μέγιστος αριθμός αντικαταστάσεων. Η προεπιλεγμένη τιμή είναι 0, που σημαίνει ότι όλες οι εμφανίσεις θα αντικατασταθούν.

Όταν το oldstr είναι ένας πίνακας, η παράμετρος occurrence (εμφάνιση) υπολογίζεται ξεχωριστά για κάθε στοιχείο του πίνακα.

casesensitive (διάκριση πεζών-κεφαλαίων): Η αναζήτηση μπορεί να κάνει διάκριση πεζών-κεφαλαίων ή όχι (Προεπιλογή = False).

Παράδειγμα:


    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

Επιστρέφει μια συμβολοσειρά με μια αναγνώσιμη αναπαράσταση του ορίσματος, περικομμένη σε δεδομένο μήκος. Αυτό είναι χρήσιμο κυρίως για σκοπούς αποσφαλμάτωσης ή καταγραφής.

Εάν η παράμετρος anyvalue είναι αντικείμενο, θα περικλείεται με αγκύλες "[" και "]".

Στις συμβολοσειρές, οι στηλοθέτες και οι αλλαγές γραμμής αντικαθίστανται από \t, \n ή \r.

Εάν το τελικό μήκος υπερβαίνει την παράμετρο maxlength, το τελευταίο μέρος της συμβολοσειράς αντικαθίσταται από το "... (N)" όπου N είναι το συνολικό μήκος της αρχικής συμβολοσειράς πριν από την περικοπή.

Σύνταξη:

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

Παράμετροι:

anyvalue (οποιαδήποτε τιμή): Η τιμή εισόδου που θα αναπαρασταθεί. Μπορεί να είναι οποιαδήποτε τιμή, όπως συμβολοσειρά, πίνακας, αντικείμενο Basic, αντικείμενο UNO κ.λπ.

maxlength: Το μέγιστο μήκος της συμβολοσειράς που προκύπτει. Η προεπιλεγμένη τιμή είναι 0, που σημαίνει ότι δεν υπάρχει όριο στο μήκος της αναπαράστασης που προκύπτει.

Παράδειγμα:


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

Σημειώστε ότι η αναπαράσταση τύπων δεδομένων όπως πίνακες και παρουσίες αντικειμένων ScriptForge.Dictionary περιλαμβάνει τόσο τον τύπο δεδομένων όσο και τις τιμές τους:


    ' Ένα παράδειγμα με έναν ενσωματωμένο πίνακα Basic
    MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
    ' "[ARRAY] (0:2) (1, 2, Text\there)"
    ' Ένα παράδειγμα με έναν πίνακα ScriptForge
    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)"
    ' Ένα παράδειγμα με ένα λεξικό ScriptForge
    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

Επιστρέφει τη συμβολοσειρά εισόδου με αντίστροφη σειρά.

Αυτή η μέθοδος είναι ισοδύναμη με την ενσωματωμένη συνάρτηση Basic StrReverse.

note

Για να χρησιμοποιήσετε τη συνάρτηση StrReverse, η δήλωση Option VBASupport 1 πρέπει να υπάρχει στη λειτουργική μονάδα.


Σύνταξη:

svc.Reverse(inputstr: str): str

Παράμετροι:

inputstr: Η συμβολοσειρά που πρέπει να αντιστραφεί.

Παράδειγμα:


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

SplitLines

Επιστρέφει έναν πίνακα συμβολοσειρών με βάση το μηδέν με τις γραμμές στη συμβολοσειρά εισόδου. Κάθε στοιχείο στον πίνακα λαμβάνεται με διαχωρισμό της συμβολοσειράς εισόδου σε χαρακτήρες νέας γραμμής.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που θα χωριστεί.

keepbreaks: Όταν είναι True, οι αλλαγές γραμμής διατηρούνται στον πίνακα εξόδου (προεπιλογή = False).

Παράδειγμα:


    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

Διαχωρίζει μια συμβολοσειρά σε έναν πίνακα στοιχείων χρησιμοποιώντας έναν καθορισμένο οριοθέτη.

Εάν μια υποσυμβολοσειρά με εισαγωγικά περιέχει έναν οριοθέτη, αγνοείται. Αυτό είναι χρήσιμο κατά την ανάλυση εγγραφών τύπου CSV που περιέχουν συμβολοσειρές σε εισαγωγικά.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που θα χωριστεί.

delimiter: Μια συμβολοσειρά ενός ή περισσότερων χαρακτήρων που θα χρησιμοποιηθεί ως οριοθέτης. Ο προεπιλεγμένος οριοθέτης είναι ο χαρακτήρας ASCII διαστήματος " ".

occurrences (εμφανίσεις): Ο μέγιστος αριθμός υποσυμβολοσειρών προς επιστροφή. Η προεπιλεγμένη τιμή είναι 0, που σημαίνει ότι δεν υπάρχει όριο στον αριθμό των επιστρεφόμενων συμβολοσειρών.

quotechar: Είτε το μονό (') είτε το διπλό (") εισαγωγικό.

Παράδειγμα:

Σε 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""", "")
  
Σε 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

Προσοχή στις διαφορές μεταξύ Basic και Python κατά την αναπαράσταση συμβολοσειρών. Για παράδειγμα, στη Basic δύο χαρακτήρες "" μέσα σε μια συμβολοσειρά ερμηνεύονται ως ένας χαρακτήρας ". Στην Python, οι συμβολοσειρές που περικλείονται με μονά εισαγωγικά μπορούν να περιέχουν " χαρακτήρες χωρίς να χρειάζεται να τους διπλασιάσουν.


StartsWith

Επιστρέφει True εάν οι πρώτοι χαρακτήρες μιας συμβολοσειράς είναι ταυτόσημοι με μια δεδομένη υποσυμβολοσειρά.

Αυτή η μέθοδος επιστρέφει False εάν είτε η συμβολοσειρά εισόδου, είτε η υποσυμβολοσειρά έχουν μήκος = 0, ή όταν η υποσυμβολοσειρά είναι μεγαλύτερη από τη συμβολοσειρά εισόδου.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά που θα δοκιμαστεί.

substring: Η υποσυμβολοσειρά προς αναζήτηση στην αρχή του inputstr.

casesensitive (διάκριση πεζών-κεφαλαίων): Η αναζήτηση μπορεί να κάνει διάκριση πεζών-κεφαλαίων ή όχι (Προεπιλογή = False).

Παράδειγμα:


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

TrimExt

Επιστρέφει τη συμβολοσειρά εισόδου χωρίς τα αρχικά και τα τελικά κενά διαστήματά της.

Σύνταξη:

svc.TrimExt(inputstr: str): str

Παράμετροι:

inputstr: Η συμβολοσειρά για περικοπή.

Παράδειγμα:


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

Unescape

Μετατρέπει οποιαδήποτε ακολουθία διαφυγής (\\, \n, \r, \t) στη συμβολοσειρά εισόδου στον αντίστοιχο χαρακτήρα ASCII.

Σύνταξη:

svc.Unescape(inputstr: str): str

Παράμετροι:

inputstr: Η συμβολοσειρά που θα μετατραπεί.

Παράδειγμα:


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

Unquote

Καταργεί τα μονά ή διπλά εισαγωγικά που περικλείουν τη συμβολοσειρά εισόδου.

Αυτό είναι χρήσιμο κατά την ανάλυση εγγραφών τύπου CSV που περιέχουν συμβολοσειρές σε εισαγωγικά.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά στην οποία θα αφαιρεθούν τα εισαγωγικά.

quotechar (χαρακτήρας εισαγωγικού): Είτε το μονό (') είτε το διπλό (") εισαγωγικό (προεπιλογή).

Παράδειγμα:


    Dim s as String
    ' s = "Κάποιο κείμενο" (χωρίς εισαγωγικά)
    s = SF_String.Unquote("""Some text""")
    ' Η παρακάτω συμβολοσειρά δεν περιέχει εισαγωγικά, επομένως παραμένει αμετάβλητη
    ' s = "Κάποιο κείμενο" (αμετάβλητο)
    s = SF_String.Unquote("Some text")
    ' Τα εισαγωγικά μέσα στη συμβολοσειρά δεν αφαιρούνται
    ' s = "Η έννοια ""αληθινή"" (αμετάβλητη)
    s = SF_String.Unquote("The ""true"" meaning")
  

Wrap

Μετατρέπει τη συμβολοσειρά εισόδου σε έναν πίνακα υποσυμβολοσειρών, έτσι ώστε κάθε στοιχείο του πίνακα να έχει το πολύ έναν δεδομένο αριθμό χαρακτήρων.

Στην πράξη, αυτή η μέθοδος επιστρέφει έναν πίνακα με βάση το μηδέν γραμμών εξόδου, χωρίς νέες γραμμές στο τέλος, εκτός από τις προϋπάρχουσες αλλαγές γραμμής.

Οι στηλοθέτες επεκτείνονται χρησιμοποιώντας την ίδια διαδικασία που εκτελείται με τη μέθοδο ExpandTabs.

Οι συμβολικές αλλαγές γραμμής αντικαθίστανται από τους ισοδύναμους χαρακτήρες ASCII.

Εάν η αναδιπλωμένη έξοδος δεν έχει περιεχόμενο, ο πίνακας που επιστρέφεται είναι κενός.

Σύνταξη:

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

Παράμετροι:

inputstr: Η συμβολοσειρά προς αναδίπλωση.

width (πλάτος): Ο μέγιστος αριθμός χαρακτήρων σε κάθε γραμμή (Προεπιλογή = 70).

tabsize: Πριν από την αναδίπλωση του κειμένου, οι υπάρχοντες χαρακτήρες TAB Chr(9) αντικαθίστανται με κενά διαστήματα. Το όρισμα tabsize ορίζει τις στάσεις TAB στο TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (Προεπιλογή = 8).

Παράδειγμα:

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

Όλες οι ρουτίνες ή αναγνωριστικά του ScriptForge στη Basic που έχουν το πρόθεμα χαρακτήρα υπογράμμισης "_" δεσμεύονται για εσωτερική χρήση. Δεν προορίζονται να χρησιμοποιηθούν σε μακροεντολές Basic ή σενάρια Python.


Παρακαλούμε, υποστηρίξτε μας!