Text, șir de caractere și tablou de octeți
Funcții pentru șiruri de caractere și colecții în scriptul TapHome: LENGTH, BYTECOLLECTION, INDEXOF, COPY, REPLACE, SPLIT, COMPARE, APPEND, INSERT, REMOVEAT, GETAT, SETAT, ENCODE, DECODE, EQUALS.
LENGTH
Returnează lungimea unui obiect sau numărul de octeți. Obiectul poate fi un număr, o valoare booleană, un șir de caractere sau o colecție (Collection).
LENGTH( object )Exemple:
LENGTH(“Hello World”) (Result is 11)
LENGTH(“40”) (Result is 2)
LENGTH(40) (Result is 8)
LENGTH(BYTECOLLECTION(“010203”) (Result is 3)BYTECOLLECTION
Creează o Collection
BYTECOLLECTION( bytes )Exemple:
BYTECOLLECTION(“010203”) (Result is Collection<UInt8> {01, 02, 03})
BYTECOLLECTION(“aa, be1-1,fe”) (Result is Collection<UInt8> {aa be 11 fe})INDEXOF
Returnează indexul elementului specificat într-un șir de caractere sau într-o colecție. Returnează -1 dacă elementul nu este găsit.
INDEXOF( string/collection, element )Exemple:
INDEXOF("Hello", “H”) (Result is 0)
INDEXOF("Hello World", “Wor”) (Result is 6)
INDEXOF("Hello World", “Wor”) (Result is 6)
INDEXOF("Hello World", “or12”) (Result is -1)
INDEXOF(BYTECOLLECTION("ab cd ee ff 01 02"), 2) (Result is 5)
INDEXOF({1, 2, 3}, 3) (Result is 2)COPY
Copiază șirul de caractere sau colecția specificată (sau o parte din acestea).
COPY( string/collection, startIndex, length)Exemple:
COPY("Hello") (Result is “Hello”)
COPY("Hello World", 2) (Result is “llo World”)
COPY("Hello World", 2, 4) (Result is “llo ”)
COPY(BYTEARRAY("01020304") (Result is byte array 01020304)
COPY(BYTEARRAY("01020304", 2, 1) (Result is byte array 03)REPLACE
Returnează un șir de caractere nou sau o colecție nouă, în care toate aparițiile valorii specificate sunt înlocuite cu valoarea nouă.
REPLACE( string/collection, oldValue, newValue)Exemple:
REPLACE("Hello", “l”, “”) (Result is “Heo”)
REPLACE("Hello", “lo”, “22”) (Result is “Hel22”)
REPLACE(BYTECOLLECTION(“050607"), 5, 9) (Result is Collection<UInt8>{09, 06, 07}SPLIT
Împarte un șir de caractere în subșiruri pe baza parametrilor de separare.
SPLIT( string, string )
SPLIT( string, char )
SPLIT( string, Collection<string> )
SPLIT( string, Collection<char> )Exemple:
SPLIT("1;2;3;4", “;”) (Result is Collection<String>{“1”, “2”, “3”, “4”})
SPLIT("1;2;3.4", “2;”) (Result is Collection<String>{“1;”, “3.4”})
SPLIT("1;2;3.4", {“2”, “3.”) (Result is Collection<String>{“1;”, “;”, “4”})COMPARE
Compară 2 șiruri de caractere și returnează un număr întreg care indică poziția lor relativă în ordinea de sortare.
COMPARE( string, string, CompareOptions )Exemple:
COMPARE("abc", “abc”) (Result is 0)
COMPARE("abc", “ABC”) (Result is 32)
COMPARE("abc", “ABC”, CompareOptions.IgnoreCase) (Result is 0)APPEND
Adaugă o valoare la o colecție sau un șir de caractere și returnează un obiect nou cu valoarea adăugată.
APPEND( string, string )
APPEND( Collection, value )Exemple:
APPEND({1, 2}, 3) (Result is Collection<Double>{1, 2, 3})
APPEND("abc", “def”) (Result is “abcdef”)INSERT
Inserează o valoare într-o colecție sau un șir de caractere. Returnează colecția sau șirul de caractere cu valoarea inserată.
INSERT( collection, index, value )
INSERT( string, index, value )Exemple:
INSERT(“Hello”, 5, “ World”) (Result is “Hello World”)
INSERT(“Hello”, 1, “i”) (Result is “Hiello”)
INSERT({1, 2, 4}, 2, 3) (Result is Collection<Double>{1, 2, 3, 4})REMOVEAT
Elimină elemente dintr-o colecție sau un șir de caractere pe baza indexului elementului și a lungimii. Returnează colecția sau șirul de caractere fără elementele specificate.
REMOVEAT( collection, index, length )
REMOVEAT( string, index, length )Exemple:
REMOVEAT(“Hello”, 1) (Result is “Hllo”)
REMOVEAT(“Hello”, 3, 2) (Result is “Ho”)
REMOVEAT({1, 2, 3, 4}, 2) (Result is Collection<Double>{1, 2, 4})
REMOVEAT({1, 2, 3, 4}, 2, 2) (Result is Collection<Double>{1, 2})GETAT
Obține valoarea unui element dintr-o colecție sau un șir de caractere pe baza indexului furnizat.
GETAT( collection, index )
GETAT( string, index )Exemple:
GETAT(“Hello”, 2) (Result is “l”)
GETAT({1, 2, 4}, 2) (Result is 4)SETAT
Setează valoarea unui element într-o colecție sau un șir de caractere la indexul furnizat.
SETAT( collection, index, value )
SETAT( string, index, value )Exemple:
SETAT(“Hello”, 1, “a”) (Result is “Hallo”)
SETAT(“Hello”, 4, “o World”) (Result is “Hello World”)
SETAT({1, 2, 4}, 2, 3) (Result is Collection<Double>{1, 2, 3})ENCODE
Codifică șirul de caractere specificat folosind unul dintre formatele acceptate și returnează șirul de caractere nou.
ENCODE( string, format )Formate acceptate:
- XML
- Base64
Exemple:
ENCODE("Hello", “xml”) (Result is “Hello”)
ENCODE("<Hello id=1>", “xml”) (Result is “<Hello id=1>”)
ENCODE("Hello", “base64”) (Result is “SGVsbG8=”)DECODE
Decodifică șirul de caractere specificat folosind unul dintre formatele acceptate și returnează șirul de caractere nou.
DECODE( string, format )Formate acceptate:
- XML
- Base64
Exemple:
DECODE("Hello", “xml”) (Result is “Hello”)
DECODE("<Hello id=1>", “xml”) (Result is “<Hello id=1>”)
DECODE("SGVsbG8=", “base64”) (Result is “Hello”)EQUALS
Compară două numere cu virgulă mobilă. Numerele sunt considerate egale dacă | n1 - n2 | < epsilon. Pragul epsilon este un parametru opțional, cu valoarea implicită 0,005.
EQUALS( number1, number2, epsilon=0.005 )Exemple:
EQUALS(1.33, 1.33) 1.0 (true)
EQUALS(1.333, 1.3335) 1.0 (true)
EQUALS(1.333, 1.338) 0.0 (false)
EQUALS(1.333, 1.338, 0.01) 1.0 (true)
EQUALS(NAN, NAN) 1.0 (true)