ScriptForge.String zerbitzua

String zerbitzuak kateak prozesatzeko metodoen bilduma bat eskaintzen du. Metodo horiek hurrengo helburuetarako erabili daitezke:

Definizioak

Lerro-jauziak

String zerbitzuak hurrengo lerro-jauziak ezagutzen ditu:

Izen sinbolikoa

ASCII zenbakia

Line feed
Vertical tab
Carriage return
Carriage return + Line feed
File separator
Group separator
Record separator
Next line
Line separator
Paragraph separator

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


Zuriuneak

String zerbitzuak hurrengo zuriuneak ezagutzen ditu:

Izen sinbolikoa

ASCII zenbakia

Zuriunea
Tabulazio horizontala
Lerro-jauzia
Tabulazio bertikala
Inprimaki-jauzia
Orga-itzulera
Hurrengo lerroa
Zuriune zatiezina
Lerro-bereizlea
Paragrafo-bereizlea

32
9
10
11
12
13
133
160
8232
8233


Ihes-sekuentziak

Behean, kateetan erabili daitezkeen ihes-sekuentzien zerrenda bat.

Ihes-sekuentzia

Izen sinbolikoa

ASCII zenbakia

\n
\r
\t

Lerro-jauzia
Orga-itzulera
Tabulazio horizontala

10
13
9


tip

Ihes-sekuentzia den "\n" benetan kate gisa interpretatua izan dadin, erabili "\\n" katea "\" & Chr(10) erabili ordez.


Karaktere ez inprimagarriak:

Unicode karaktereen datu-basean “Beste batzuk” edo “Bereizlea” atalean dauden karaktereak karaktere ez inprimagarritzat hartzen dira.

Kontrol-karaktereak ere (ASCII kodea <= 0x1F) ez inprimagarritzat hartzen dira.

Komatxoak kateen barruan:

Kateei komatxoak gehitzeko, erabili \' (komatxo soila) edo \" (komatxo bikoitza). Adibidez:

Zerbitzuari deitzea

ScriptForge.String zerbitzua erabili baino lehen, ScriptForge liburutegia honakoa erabilita kargatu behar da:

Basic lengoaian

      GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
  

Liburutegia kargatzean SF_String objektua sortuko da, era horren bidez String zerbitzuko metodoak deitu ahal izango dira.

Hurrengo kode-zatiek String zerbitzuko metodoei deitzeko hiru modu erakusten dituzte (Capitalize metodoa adibidetzat hartu da):


    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 lengoaian

Beheko kode-zatiak Python scriptetan String zerbitzuko metodoak nola deitu azaltzen du. ¡IsIPv4 metodoa erabili da adibide modura.


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

Propietateak

SF_String objektuak honako propietateak eskaintzen ditu Basic scriptetarako:

Izena

Irakurtzeko soilik

Deskribapena

sfCR

Bai

Orga-itzulera: Chr(13)

sfCRLF

Bai

Orga-itzulera + Lerro-jauzia: Chr(13) & Chr(10)

sfLF

Bai

Lerro-jauzia: Chr(10)

sfNEWLINE

Bai

Orga-itzulera + Lerro-jauzia, honakoetako bat izan daiteke:
1) Chr(13) & Chr(10) edo
2) Lerro-jauzia: Chr(10)
sistema eragilearen arabera.

sfTAB

Bai

Tabulazio horizontala: Chr(9)


tip

Goiko propietateak erabili daitezke kateen barruan karaktereak identifikatu edo txertatzeko. Adibidez, lerro-jauziaren ordez SF_String.sfLF erabili daiteke.


String zerbitzuaren metodoen zerrenda

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

Metodo askotako lehen argumentua metodoak manipulatuko duen katea izan ohi da. Beti erreferentzia gisa pasatzen da eta ez da aldatzen. Capitalize, Escape eta antzeko metodoek kate berria itzultzen dute exekuzioaren ondoren.


warning

Python lengoaiak kateen euskarri integratu zabala duenez, String zerbitzuaren metodo gehienak Basic scriptetarako soilik daude erabilgarri. Basic eta Python lengoaietarako erabilgarri dauden metodoak honakoak dira: HashStr, IsADate, IsEmail, IsFileName, IsIBAN, IsIPv4, IsLike, IsSheetName, IsUrl, SplitNotQuoted eta Wrap.


Capitalize

Sarrerako kateko hitz bakoitzaren lehen karakterea maiuskula bihurtzen du.

Sintaxia:

svc.Capitalize(inputstr: str): str

Parametroak:

inputstr: Maiuskuletara bihurtuko den katea.

Adibidea:


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

Count

Kate baten barruan azpikate edo adierazpen erregular bat zenbat aldiz ageri den zenbatzen du.

Sintaxia:

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

Parametroak:

inputstr: Aztertuko den sarrerako katea.

substring: Bilaketan erabiliko den azpikatea edo adierazpen erregularra.

isregex: Erabili True azpikatea adierazpen erregular bat bada (lehenetsia = False).

casesensitive: Konparazioan maiuskulak/minuskulak kontuan hartu daitezke edo ez (Balio lehenetsia = False).

Adibidea:


    ' "or" azpikatea sarrerako katean zenbat aldiz agertzen den zenbatzen du (2 itzultzen du)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "or", CaseSensitive := False)
    'Minuskulak soilik dituen hitzen kopurua zenbatzen du (7 itzultzen du)
    MsgBox SF_String.Count("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", "\b[a-z]+\b", IsRegex := True, CaseSensitive := True)
  
tip

Adierazpen erregularrei buruz gehiago jakiteko, begiratu Python lengoaiaren dokumentazioa Regular Expression Operations estekan.


EndsWith

True itzultzen du kate bat zehaztutako azpikatearekin amaitzen bada.

Funtzioak False itzuliko du katearen edo azpikatearen luzera 0 bada edo azpikatea katea baino luzeagoa bada.

Sintaxia:

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

Parametroak:

inputstr: Aztertuko den katea.

substring: inputstr amaieran bilatuko den azpikatea.

casesensitive: Konparazioan maiuskulak/minuskulak kontuan hartu daitezke edo ez (Balio lehenetsia = False).

Adibidea:


    'True (egia) itzultzen du metodoa CaseSensitive = False lehenetsiarekin deitu delako
    MsgBox SF_String.EndsWith("abcdefg", "EFG")
    'False (faltsua) itzultzen du CaseSensitive parametroaren ondorioz
    MsgBox SF_String.EndsWith("abcdefg", "EFG", CaseSensitive := True)
  

Escape

Sarrerako katean dauden lerro-jauziak eta tabulazioak haietako bakoitzari dagokion ihes egindako sekuentzia bihurtzen ditu (\\, \n, \r, \t).

Sintaxia:

svc.Escape(inputstr: str): str

Parametroak:

inputstr: Bihurtuko den katea.

Adibidea:


    ' "abc\n\tdef\\n" katea itzultzen du
    MsgBox SF_String.Escape("abc" & Chr(10) & Chr(9) & "def\n")
  

ExpandTabs

Chr(9) tabulazio-karaktereak zuriuneekin ordezten ditu, tabulazioen portaera erreplikatzeko.

Lerro-jauzi bat aurkitzen bada, lerro berria hasiko da eta karaktere-kontagailua berrezarriko da.

Sintaxia:

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

Parametroak:

inputstr: Hedatuko den katea.

tabsize: Parametro hau tabulazio-geldiuneak zehazteko erabiltzen da, honako formularen bidez: TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (lehenetsia = 8)

Adibidea:


    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

Sarrerako katean inprimagarriak ez diren karaktere guztiak ordezten ditu emandako karaktere batekin.

Sintaxia:

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

Parametroak:

inputstr: Bilatuko den katea.

replacedby: inputstr katean dauden karaktere ez inprimagarri guztiak ordeztuko dituzten zero, bat edo hainbat karaktere (Lehenetsia = "")

Adibidea:


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

FindRegex

Kate batean adierazpen erregular batekin bat egiten duen azpikate bat aurkitzen du.

Sintaxia:

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

Parametroak:

inputstr: Bilatuko den katea.

regex: Adierazpen erregularra.

start: Bilaketa non hasiko den katearen barruan. Parametro hau erreferentzia gisa pasatzen denez, exekuzioaren ondoren start balioak aurkitutako azpikatearen lehen karakterea adieraziko du. Bat datorren azpikaterik aurkitzen ez bada, start 0 izango da.

casesensitive: Konparazioan maiuskulak/minuskulak kontuan hartu daitezke edo ez (Balio lehenetsia = False).

forward: Bilaketaren norabidea zehazten du. True bada, bilaketa aurrerantz joango da. False bada, bilaketa atzerantz joango da (Lehenetsia = True)

Lehen iterazioan, forward = True bada, orduan start 1 izango da, eta forward = False bada, orduan start eta Len(inputstr) berdinak izango dira.

Adibidea:


    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

Goiko adibidean, hurrengo iterazioan Start parametroan lStart + Len(emaitza) jarrita, lStart funtzioak ematen duen balio berria sarrerako kate bera bilatzen jarraitu dezan ezarri daiteke.


HashStr

Hash funtzioak hainbat tokitan erabiltzen dira: zifratze-algoritmoetan, sinadura digitaletan, mezuak autentifikatzeko kodeetan, manipulazioen detekzioan, hatz-marketan, kontroleko baturetan (mezuen osotasunaren egiaztatzeetan), hash tauletan, pasahitzen biltegietan eta beste hainbatetan.

HashStr metodoaren bidez, emandako kate bati algoritmo jakin baten bidez aplikatutako hash-funtzioaren emaitza lortuko da, digitu hamaseitar minuskulen kate gisa.

Onartutako hash algoritmoak honakoak dira: MD5, SHA1, SHA224, SHA256, SHA384 eta SHA512.

Sintaxia:

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

Parametroak:

inputstr: Hash balioa kalkulatuko zaion katea. Katearen kodeketa UTF-8 dela suposatzen da. Hash-algoritmoak byte-korrontetzat hartuko du katea.

algorithm: Onartutako algoritmoetako bat, goian zerrendatutakoen artekoa, kate gisa pasatuko dena.

Adibidea:

Basic lengoaian

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

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

HtmlEncode

Sarrerako katea HTML karaktere-kode gisa kodetzen du, karaktere berezien ordez & homologoak ezarrita.

Adibidez, é karakterearen ordez &eacute; edo horren baliokide bat, zenbakizko HTML kode forman, erabiliko da.

Sintaxia:

svc.HtmlEncode(inputstr: str): str

Parametroak:

inputstr: Kodetuko den katea.

Adibidea:


    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 itzultzen du sarrerako katea baliozko data bat bada zehaztutako data-formatuari kasu eginda.

Sintaxia:

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

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

dateformat: Dataren formatua, kate gisa."UUUU-HH-EE" (lehenetsia), "EE-HH-UUUU" edo "HH-EE-UUU" izan daiteke.

Marratxoaren (-) ordez puntu bat (.), barra bat (/) edo zuriune bat erabili daiteke.

Formatua baliogabea bada, metodoak False itzuliko du.

Adibidea:

Basic lengoaian

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

Metodo honek sarrerako katearen formatua egiaztatzen du, baina ez egutegiari lotutako kontuak. Beraz, ez du begiratzen sarrerako katearen urteak ondo dauden, edo 30 edo 31 eguneko hilabeteak diren ala ez. Horretarako, erabili IsDate funtzio integratua.


Beheko adibideak IsADate (ScriptForge) eta IsDate (integratutako) funtzioen arteko desberdintasuna erakusten du.


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

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

IsAlpha

True itzuliko du kateko karaktere guztiak alfabetikoak badira.

Karaktere alfabetikoak Unicode karaktereen datu-basean Letter gisa definituta daudenak dira.

Sintaxia:

svc.IsAlpha(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:


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

IsAlphaNum

True itzuliko du karaktere guztiak alfabetikoak, digituak edo "_" (azpimarra) badira. Lehen karaktereak ezin du digitua izan.

Sintaxia:

svc.IsAlphaNum(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:


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

IsAscii

True (egia) itzultzen du kateko karaktere guztiak ASCII karaktereak badira.

Sintaxia:

svc.IsAscii(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:


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

IsDigit

True itzuliko du kateko karaktere guztiak digituak badira.

Sintaxia:

svc.IsDigit(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:


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

IsEmail

True itzuliko du katea baliozko posta elektronikoko helbidea bada.

Sintaxia:

svc.IsEmail(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:

Basic lengoaian

    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 lengoaian

    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 itzuliko du katea baliozko fitxategi-izena bada emandako sistema eragilean.

Sintaxia:

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

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

osname: Sistema eragilearen izena, kate gisa. "WINDOWS", "LINUX", "MACOSX" edo "SOLARIS" izan daiteke.

Balio lehenetsia scripta exekutatzen ari den uneko sistema eragilea da.

Adibidea:

Basic lengoaian

    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 lengoaian

    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 itzuliko du kateko karaktere guztiak digitu hamaseitarrak badira.

Sintaxia:

svc.IsHexDigit(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Digitu hamaseitarrek "0x" edo "&H" eduki dezakete aurrizki gisa.

Adibidea:


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

IsIBAN

True itzuliko du katea baliozko International Bank Account Number (IBAN) bat bada. Konparazioak ez ditu maiuskulak/minuskulak bereiziko.

Sintaxia:

svc.IsIBAN(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Itzulera-balioa:

True, kateak baliozko IBAN zenbaki bat badu.

Adibidea:


    ' 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 itzultzen du katea baliozko IP(v4) helbidea bada.

Sintaxia:

svc.IsIPv4(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:

Basic lengoaian

    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 lengoaian

    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 itzultzen du sarrerako kate osoa bat badator komodinak dituen eredu batekin.

Sintaxia:

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

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

pattern: Eredua kate gisa. Komodinak honakoak dira:

casesensitive: Konparazioan maiuskulak/minuskulak kontuan hartu daitezke edo ez (Balio lehenetsia = False).

Adibidea:

Basic lengoaian

    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 lengoaian

    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 itzultzen du kateko karaktere guztiak minuskulak badira. Alfabetikoak ez diren karaktereei ez ikusiarena egingo zaie.

Sintaxia:

svc.IsLower(inputstr: str): bool

Parametroak:

InputStr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:


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

IsPrintable

True itzultzen du kateko karaktere guztiak inprimagarriak badira.

Sintaxia:

svc.IsPrintable(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:


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

IsRegex

True itzultzen du sarrerako kate osoa bat badator emandako adierazpen erregular batekin.

Sintaxia:

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

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

regex: Adierazpen erregularra, Hutsik badago, metodoak False itzuliko du.

casesensitive: Konparazioan maiuskulak/minuskulak kontuan hartu daitezke edo ez (Balio lehenetsia = False).

Adibidea:


        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 itzultzen du sarrerako katea Calc aplikazioaren baliozko orri-izen bat bada.

Sintaxia:

svc.IsSheetName(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:

Basic lengoaian

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

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

Orri-izen batek ezin ditu [ ] * ? : / \ karaktereak edo ' (komatxoa) karakterea eduki lehen edo azken karakteretzat.


IsTitle

True itzultzen du hitza bakoitzaren lehen karakterea maiuskula bada eta beste karaktereak minuskula.

Sintaxia:

svc.IsTitle(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:


    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 itzultzen du kateko karaktere guztiak maiuskula badira. Alfabetikoak ez diren karaktereei ez ikusiarena egingo zaie.

Sintaxia:

svc.IsUpper(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:


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

IsUrl

True itzultzen du katea baliozko URL (Uniform Resource Locator) helbide absolutua bada. Onartutako protokoloak http, https eta ftp dira.

Sintaxia:

svc.IsUrl(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:

Basic lengoaian

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

    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 itzultzen du kateko karaktere guztiak zuriuneak badira.

Sintaxia:

svc.IsWhitespace(inputstr: str): bool

Parametroak:

inputstr: Egiaztatuko den katea. Hutsik badago, metodoak False itzuliko du.

Adibidea:


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

JustifyCenter

Sarrerako katea erdian justifikatuta itzultzen du.

Ezkerreko eta eskuineko zuriuneak kendu egingo dira eta geratzen diren karaktereak ezkerretik eta eskuinetik osatuko dira zehaztutako length luzeraraino padding karakterea erabilita.

Sintaxia:

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

Parametroak:

inputstr: Erdian justifikatuko den katea. Hutsik badago, metodoak kate hutsa itzuliko du.

length: Emaitza gisa sortuko den katearen luzera (balio lehenetsia = sarrerako katearen luzera).

Zehaztutako luzera erdian justifikatutako sarrerako katearena baino laburragoa bada, itzulitako katea moztu egingo da.

padding: Betegarri gisa erabiliko den karaktere bakuna (balio lehenetsia = " " ASCII zuriunea).

Adibidea:


    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

Sarrerako katea ezkerrean justifikatuta itzultzen du.

Ezkerreko zuriuneak kendu egingo dira eta geratzen diren karaktereak eskuinetik osatuko dira zehaztutako length luzeraraino padding karakterea erabilita.

Sintaxia:

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

Parametroak:

inputstr: Ezkerrean justifikatuko den katea. Hutsik badago, metodoak kate huts bat itzuliko du.

length: Emaitza gisa sortuko den katearen luzera (balio lehenetsia = sarrerako katearen luzera).

Zehaztutako luzera ezkerrean justifikatutako sarrerako katearena baino laburragoa bada, itzulitako katea moztu egingo da.

padding: Betegarri gisa erabiliko den karaktere bakuna (balio lehenetsia = " " ASCII zuriunea).

Adibidea:


    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

Sarrerako katea eskuinean justifikatuta itzultzen du.

Ezkerreko zuriuneak kendu egingo dira eta geratzen diren karaktereak ezkerretik osatuko dira zehaztutako length luzeraraino padding karakterea erabilita.

Sintaxia:

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

Parametroak:

inputstr: Eskuinean justifikatuko den katea. Hutsik badago, metodoak kate huts bat itzuliko du.

length: Emaitza gisa sortuko den katearen luzera (balio lehenetsia = sarrerako katearen luzera).

Zehaztutako luzera eskuinean justifikatutako sarrerako katearena baino laburragoa bada, itzulitako katea moztu egingo da.

padding: Betegarri gisa erabiliko den karaktere bakuna (balio lehenetsia = " " ASCII zuriunea).

Adibidea:


    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

Sarrerako katea komatxo soilekin edo bikoitzekin inguratuta itzultzen du. Lehendik dauden komatxoak, aurretik edota atzetik daudenak barne, ez dira aldatuko.

Sintaxia:

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

Parametroak:

inputstr: Komatxo artean sartuko den katea.

quotechar: Komatxo soila (') edo bikoitza (") (lehenetsia).

Adibidea:


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

Metodo hori erabilgarria izan daiteke kateen eremu bat CSV formatuan gordetzeko prestatzen denean, horrek eskatzen baitu testu-balioak komatxo soilekin edo bikoitzekin inguratuta egotea.


ReplaceChar

Before parametroan zehaztu diren karaktereen agerraldi guztiak After parametroan zehaztu direnekin ordezten ditu.

Before parametroa After baino luzeagoa bada, Before parametroko hondar-karaktereak ordezteko After parametroko azken karakterea erabiliko da.

Sintaxia:

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

Parametroak:

inputstr: Ordezkapenak jasango dituen sarrerako katea.

before: Sarrerako katean ordezteko bilatuko diren karaktereak dituen kate bat.

after: before parametroan definitu diren karaktereak ordeztuko dituzten karaktere berriak dituen kate bat.

Adibidea:


    ' Azentudun karaktereak ordezten ditu
    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 zerbitzuak konstante publiko erabilgarriak eskaintzen ditu karaktere-joko latindarretarako, beheko adibidean erakusten den moduan:


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

ReplaceRegex

Emandako adierazpen erregular baten agerraldi guztiak kate berri batekin ordezten ditu.

Sintaxia:

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

Parametroak:

inputstr: Ordezkapenak jasango dituen sarrerako katea.

regex: Adierazpen erregularra.

newstr: Ordezko katea.

casesensitive: Konparazioan maiuskulak/minuskulak kontuan hartu daitezke edo ez (Balio lehenetsia = False).

Adibidea:


    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." (letra minuskula guztien ordez "x" jarriko da)
    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." (hitz bakoitzaren ordez "x" jarriko da)
  

ReplaceStr

Kate batean, kateen matrize bateko agerraldi batzuk edo guztiak kate berrien matrize batekin ordezten ditu.

Sintaxia:

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

Parametroak:

inputstr: Ordezkapenak jasango dituen sarrerako katea.

oldstr: Kate bat edo kateen matrize bat. Zero luzerako kateei ez ikusiarena egingo zaie.

newstr: Ordezko katea edo kateen matrizea.

oldstr matrize bat bada, oldstr barruko edozein elementuren agerraldi bakoitzaren ordez newstr sartuko da.

oldstr eta newstr matrizeak badira, ordezkapenak banan-banan egingo dira, UBound(newstr) baliora iritsi arte.

oldstr parametroak newstr parametroak baino sarrera gehiago baditu, oldstr parametroko hondar-elementuak newstr parametroko azken elementuarekin ordeztuko da.

occurrences: Ordezkapenen gehieneko kopurua. Balio lehenetsia 0 da, alegia, agerraldi guztiak ordeztuko dira.

oldstr matrize bat bada, occurrence parametroa matrizeko elementu bakoitzerako banan-banan kalkulatuko da.

casesensitive: Konparazioan maiuskulak/minuskulak kontuan hartu daitezke edo ez (Balio lehenetsia = False).

Adibidea:


    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

Argumentuaren irudikapen irakurgarria duen kate bat itzultzen du, emandako luzeran moztua. Funtzio hau arazketarako eta egunkarian informazioa gordetzeko da erabilgarria.

anyvalue parametroa objektu bat bada, "[" eta "]" kortxeteekin inguratuko da.

Kateetan, tabulazioen eta lerro-jauzien ordez \t, \n edo \r erabiliko da.

Azken luzera maxlength baino luzeagoa bada, katearen azken aldean " ... (N)" erabiliko da, non N mozketa gertatu baino lehenago jatorrizko kateak zuen luzera den.

Sintaxia:

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

Parametroak:

anyvalue: Irudikatuko den sarrerako balioa. Edozein balio izan daiteke: kate bat, matrize bat, Basic objektu bat, UNO objektu bat, etab.

maxlength: Emaitza gisa sortuko den katearen gehieneko luzera. Balio lehenetsia 0 da, alegia, ez dagoela mugarik luzeran.

Adibidea:


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

Kontuan izan matrizeen eta ScriptForge.Dictionary objektu-instantzien irudikapenek bai datu mota bai balioak barne hartzen dituztela:


    ' Adibide bat Basic-en matrize integratu batekin
    MsgBox SF_String.Represent(Array(1, 2, "Text" & Chr(9) & "here"))
    ' "[ARRAY] (0:2) (1, 2, Text\there)"
    ' Adibide bat ScriptForge matrize batekin
    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)"
    ' Adibide bat ScriptForge hiztegi batekin
    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

Sarrerako katea alderantzizko ordenan itzultzen du.

Metodo hori StrReverse Basic funtzioaren baliokidea da.

note

StrReverse funtzioa erabiltzeko, Option VBASupport 1 instrukzioak presente egon behar du moduluan.


Sintaxia:

svc.Reverse(inputstr: str): str

Parametroak:

inputstr: Alderantzikatuko den katea.

Adibidea:


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

SplitLines

Zeron oinarritutako kate-matrize bat itzultzen du sarrerako katearen lerroekin osatuta. Matrizearen elementu bakoitza lortzeko, sarrerako katea lerro-jauzien karaktereak dauden tokietan zatitzen da.

Sintaxia:

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

Parametroak:

inputstr: Zatituko den katea.

keepbreaks: True bada, lerro-jauziak mantendu egingo dira irteerako matrizean (lehenetsia = False).

Adibidea:


    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

Kate bat elementuen matrize batera zatitzen du zehaztutako mugatzaile bat erabilita.

Komatxo arteko azpikate batek mugatzaile bat badu, ez ikusiarena egingo zaio. Hau erabilgarria da komatxo arteko kateak dituzten CSV motako erregistroak analizatu nahi badira.

Sintaxia:

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

Parametroak:

inputstr: Zatituko den katea.

delimiter: Mugatzaile gisa erabiliko diren karaktere batez edo batzuez osatutako katea. Mugatzaile lehenetsia zuriunearen ASCII karakterea, "", da.

occurrences: Itzuliko den gehieneko azpikate kopurua. Balio lehenetsia 0 da, horrek esan nahi du ez dagoela mugarik itzulitako kateen kopuruan.

quotechar : Komatxo soilak (') edo bikoitzak (").

Adibidea:

Basic lengoaian

    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 lengoaian

    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

Kontuan izan Basic eta Python lengoaiek modu desberdinean adierazten dituztela kateak. Adibidez, Basic-en bi "" karaktere badaude kate baten barruan, " karaktere bakar gisa hartzen dira. Python-en, berriz, komatxo soilekin inguratutako kateek " karaktereak eduki ditzakete eta ez dira haiek bikoiztu behar.


StartsWith

True itzuliko du kate baten lehen karaktereak emandako azpikatearen berdinak badira.

Metodo honek False itzultzen du sarrerako katearen edo azpikatearen luzera 0 bada edo azpikatea sarrerako katea baino luzeagoa bada.

Sintaxia:

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

Parametroak:

inputstr: Aztertuko den katea.

substring: inputstr hasieran bilatuko den azpikatea.

casesensitive: Konparazioan maiuskulak/minuskulak kontuan hartu daitezke edo ez (Balio lehenetsia = False).

Adibidea:


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

TrimExt

Sarrerako katea ezkerreko eta eskuineko zuriuneak kenduta itzultzen du.

Sintaxia:

svc.TrimExt(inputstr: str): str

Parametroak:

inputstr: Moztuko den katea.

Adibidea:


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

Unescape

Sarrerako katean ihes egindako edozein sekuentzia (\\, \n, \r, \t) dagokion ASCII karaktere bihurtzen du.

Sintaxia:

svc.Unescape(inputstr: str): str

Parametroak:

inputstr: Bihurtuko den katea.

Adibidea:


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

Unquote

Sarrerako katea inguratzen dituzten komatxo soilak edo bikoitzak kentzen ditu.

Hau komatxo arteko kateak dituzten CSV erregistroak analizatzeko da erabilgarria.

Sintaxia:

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

Parametroak:

inputstr: Komatxoak kenduko zaizkion katea.

quotechar: Komatxo soila (') edo bikoitza (") (lehenetsia).

Adibidea:


    Dim s as String
    ' s = "Some text" (inguruko komatxorik gabe)
    s = SF_String.Unquote("""Some text""")
    'Beheko kateak ez du komatxorik inguruan, beraz ez da aldatuko
    ' s = "Some text" (aldaketarik gabe)
    s = SF_String.Unquote("Some text")
    ' Katearen barruko komatxoak ez dira kenduko
    ' s = "The ""true"" meaning" (aldaketarik gabe)
    s = SF_String.Unquote("The ""true"" meaning")
  

Wrap

Sarrerako katea azpikateen matrize bihurtzen du, matrizeko elementu bakoitzak gehienez karaktere kopuru jakin bat duela.

Praktikan, metodo honek zeron oinarritutako matrize bat itzultzen du irteerako lerroekin, amaieran lerro berririk gabe, lehendik zeuden lerro-jauziak salbu.

Tabulazioak ExpandTabs metodoan gauzatutako prozedura bera erabilita hedatzen dira.

Lerro-jauzi sinbolikoen ordez haien baliokideak diren ASCII karaktereak erabiltzen dira.

Egokitutako irteerak ez badu edukirik, itzulitako matrizea hutsik egongo da.

Sintaxia:

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

Parametroak:

inputstr: Egokituko den katea.

width: Lerro bakoitzaren gehieneko karaktere kopurua (lehenetsia = 70).

tabsize: Testua egokitu baino lehen, lehendik dauden TAB Chr(9) karaktereen ordez zuriuneak kokatzen dira. tabsize argumentuak honako tokietan definitzen ditu TAB geldiuneak: TabSize + 1, 2 * TabSize + 1 , ... N * TabSize + 1 (lehenetsia = 8).

Adibidea:

Basic lengoaian

    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 lengoaian

    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

Azpimarraren karaktere bat, "_", aurrizki gisa duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez dira Basic makroetan edo Python scriptetan erabili behar.


Emaguzu laguntza!