Περιεχόμενα

# Υπηρεσία 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

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

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

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

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

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

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

- Η συμβολοσειρά [str\'i\'ng] ερμηνεύεται ως [str'i'ng]

- Η συμβολοσειρά [str\"i\"ng] ερμηνεύεται ως [str"i"ng]

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

Πριν χρησιμοποιήσετε την υπηρεσία 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)

Μπορείτε να χρησιμοποιήσετε τις παραπάνω ιδιότητες για να αναγνωρίσετε ή να εισαγάγετε τους αντίστοιχους χαρακτήρες μέσα σε συμβολοσειρές. Για παράδειγμα, η αλλαγή γραμμής μπορεί να αντικατασταθεί από 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

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

Επειδή η 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)

Για να μάθετε περισσότερα σχετικά με τις κανονικές εκφράσεις, ανατρέξτε στην τεκμηρίωση της 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

Στο παραπάνω παράδειγμα, η νέα τιμή του 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

Αυτή η μέθοδος ελέγχει τη μορφή της συμβολοσειράς εισόδου χωρίς να πραγματοποιεί ελέγχους που αφορούν το ημερολόγιο. Ως εκ τούτου, δεν δοκιμάζει τη συμβολοσειρά εισόδου για δίσεκτα έτη, ή μήνες με 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

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

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

Αυτή η μέθοδος μπορεί να είναι χρήσιμη κατά την προετοιμασία ενός πεδίου συμβολοσειράς που θα αποθηκευτεί σε ένα αρχείο που μοιάζει με 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.

Για να χρησιμοποιήσετε τη συνάρτηση 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""', '')

Προσοχή στις διαφορές μεταξύ 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...')

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

Σχετικά θέματα

ScriptForge.Υπηρεσία Πίνακας

Συνάρτηση String