TapHome

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 din valorile hexazecimale specificate.

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 “&lt;Hello id=1&gt;”)
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("&lt;Hello id=1&gt;", “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)