TapHome

Tekst, ciąg znaków i bajtów

Funkcje łańcuchowe i kolekcji w skrypcie TapHome — LENGTH, BYTECOLLECTION, INDEXOF, COPY, REPLACE, SPLIT, COMPARE, APPEND, INSERT, REMOVEAT, GETAT, SETAT, ENCODE, DECODE, EQUALS.

LENGTH

Zwraca długość obiektu lub liczbę bajtów. Obiekt może być liczbą, wartością logiczną, łańcuchem lub Kolekcją.

LENGTH( object )

Przykłady:

LENGTH(“Hello World”)			(Result is 11)
LENGTH(“40”)				(Result is 2)
LENGTH(40)					(Result is 8)
LENGTH(BYTECOLLECTION(“010203”)	(Result is 3)

BYTECOLLECTION

Tworzy Collection z podanych wartości szesnastkowych.

BYTECOLLECTION( bytes )

Przykłady:

BYTECOLLECTION(“010203”) 				(Result is Collection<UInt8> {01, 02, 03})
BYTECOLLECTION(“aa, be1-1,fe”) 			(Result is Collection<UInt8> {aa be 11 fe})

INDEXOF

Zwraca indeks określonego elementu w łańcuchu lub kolekcji. Zwraca -1, jeśli element nie został znaleziony.

INDEXOF( string/collection, element )

Przykłady:

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

Kopiuje wskazany ciąg znaków lub kolekcję (lub ich część).

COPY( string/collection, startIndex, length)

Przykłady:

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

Zwraca nowy łańcuch znaków lub kolekcję, w której wszystkie wystąpienia określonej wartości są zastąpione nową wartością.

REPLACE( string/collection, oldValue, newValue)

Przykłady:

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

Dzieli łańcuch na podłańcuchy w oparciu o separatory.

SPLIT( string, string )
SPLIT( string, char )
SPLIT( string, Collection<string> )
SPLIT( string, Collection<char> )

Przykłady:

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

Porównuje dwa łańcuchy znaków i zwraca liczbę całkowitą wskazującą ich względne położenie w porządku sortowania.

COMPARE( string, string, CompareOptions )

Przykłady:

COMPARE("abc", “abc”)						(Result is 0)
COMPARE("abc", “ABC”)						(Result is 32)
COMPARE("abc", “ABC”, CompareOptions.IgnoreCase)	(Result is 0)

APPEND

Dołącza wartość do kolekcji lub łańcucha i zwraca nowy obiekt z dołączoną wartością.

APPEND( string, string )
APPEND( Collection, value )

Przykłady:

APPEND({1, 2}, 3)     (Result is Collection<Double>{1, 2, 3})
APPEND("abc", “def”)  (Result is “abcdef”)

INSERT

Wstawia wartość do kolekcji lub łańcucha. Zwraca kolekcję lub łańcuch z wstawioną wartością.

INSERT( collection, index, value )
INSERT( string, index, value )

Przykłady:

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

Usuwa elementy z kolekcji lub łańcucha na podstawie indeksu elementu i długości. Zwraca kolekcję lub łańcuch bez podanych elementów.

REMOVEAT( collection, index, length )
REMOVEAT( string, index, length )

Przykłady:

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

Pobiera wartość elementu z kolekcji lub łańcucha na podstawie podanego indeksu.

GETAT( collection, index )
GETAT( string, index )

Przykłady:

GETAT(“Hello”, 2)			(Result is “l”)
GETAT({1, 2, 4}, 2)			(Result is 4)

SETAT

Ustawia wartość elementu w kolekcji lub łańcuchu pod podanym indeksem.

SETAT( collection, index, value )
SETAT( string, index, value )

Przykłady:

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

Koduje wskazany łańcuch w jednym z formatów i zwraca nowy łańcuch.

ENCODE( string, format )

Obsługiwane formaty:

  • XML
  • Base64

Przykłady:

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

Dekoduje wskazany łańcuch, używając jednego z formatów, i zwraca nowy łańcuch.

DECODE( string, format )

Obsługiwane formaty:

  • XML
  • Base64

Przykłady:

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

Porównuje dwie liczby w arytmetyce zmiennoprzecinkowej. Liczby uznaje się za równe, jeśli | n1 - n2 | < epsilon. Domyślna wartość progu (*epsilon) wynosi 0.005 i jest parametrem opcjonalnym.

EQUALS( number1, number2, epsilon=0.005 )

Przykłady:

EQUALS(1.33, 1.33)          1.0 (true)
EQUALS(1.333, 1.3335)		1.0 (true)
EQUALS(1.333, 1.338)		1.0 (false)
EQUALS(1.333, 1.338, 0.01)	1.0 (true)
EQUALS(NAN, NAN)		    1.0 (true)