TapHome

Pretvorbe tipova podataka

Funkcije pretvorbe u skripti TapHome — TOSTRING s nizovima formata za brojeve i datume, TODOUBLE, TOBYTES te ENCODE / DECODE za XML i Base64.

Funkcije pretvorbe pretvaraju vrijednosti u tekst i natrag: brojeve i datume u formatirani tekst, tekst u brojeve i bajtove te tekst u Base64 ili u oblik siguran za XML. Pretvorba BCD (TOBCD, FROMBCD) opisana je na stranici Operacije s bitovima, a pretvorba boja (HSVTORGB, RGBTOHSV) na stranici Boje.

TOSTRING

TOSTRING pretvara bilo koju vrijednost u tekst — brojeve i datume s neobaveznim nizom formata .NET, zbirke bajtova i blobove s kodiranjem teksta.

1
2
3
TOSTRING(value)
TOSTRING(value, format)
TOSTRING(bytes, encoding)
UlazRezultat
stringBez promjene.
brojBez formata običan broj s decimalnom točkom (21.5). S formatom vidi Nizovi formata.
datetimeBez formata yyyy/MM/dd hh:mm:ss.fff (12-satni prikaz, bez AM ili PM); s formatom zadani uzorak.
collection<uint8>, blobBajtovi dekodirani kao tekst. Drugi argument je naziv kodiranja, zadano iso-8859-1, na primjer "utf-8".
druga zbirkaPogreška Cannot cast collection of ‘X’ to string.

Primjer

TOSTRING(192, "X");
# Result: "C0"
TOSTRING(192, "X4");
# Result: "00C0"
TOSTRING(123.34, "F4");
# Result: "123.3400"
TOSTRING(123.34, "F0");
# Result: "123"
TOSTRING(BYTECOLLECTION("48656c6c6f"));
# Result: "Hello"
TOSTRING(BYTECOLLECTION("48656c6c6f"), "iso-8859-1");
# Result: "Hello"

U listener skripti TOSTRING(RECEIVEDMSG.PAYLOAD, "utf-8") čita primljenu poruku kao tekst — vidi RECEIVEDMSG.

Nizovi formata

TOSTRING formatira brojeve i datume nizovima formata .NET i uvijek koristi decimalnu točku, bez obzira na jezične postavke centralne jedinice.

FormatUlazIzlaz
"F2"231.4721"231.47" — fiksni broj decimala
"F0"21.5"22" — zaokruženo na cijeli broj
"0.0"7"7.0" — vlastiti uzorak
"00"7"07" — vodeće nule
"X", "X4"255"FF", "00FF" — heksadecimalno, velika slova
"yyyy-MM-dd"datetime"2026-01-15"
"HH:mm"datetime"08:30" — 24-satni prikaz
"dd.MM.yyyy HH:mm:ss"datetime"15.01.2026 08:30:00"

Napomene

  • Format koji sadrži veliko slovo X najprije pretvara vrijednost u 32-bitni cijeli broj, a zatim ga ispisuje heksadecimalno.
  • U formatima datuma HH je 24-satni, a hh 12-satni prikaz; MM je mjesec, a mm minuta.

Primjer — vremenska oznaka za zapis ili HTTP zahtjev

VAR now := NOW();
"Updated " + TOSTRING(now, "dd.MM.yyyy HH:mm");

TODOUBLE

TODOUBLE čita broj iz teksta s decimalnom točkom i vraća NaN kada tekst nije broj.

1
TODOUBLE(text)

Vraća — double. NaN kada se tekst ne može pročitati; 0 za Null.

Napomene — Tekst se uvijek čita s decimalnom točkom. Zarez vrijedi kao razdjelnik tisućica, pa "1,5" daje 15. Kada izvor koristi decimalni zarez, najprije zamijenite zarez.

Primjer

TODOUBLE("232");
# Result: 232
TODOUBLE("-192.332");
# Result: -192.332
TODOUBLE("some text");
# Result: NaN
TODOUBLE(REPLACE("21,5", ",", "."));
# Result: 21.5

TOBYTES

TOBYTES kodira tekst u zbirku bajtova (collection<uint8>) i koristi iso-8859-1, osim ako je navedeno drugo kodiranje.

1
2
TOBYTES(text)
TOBYTES(text, encoding)

Napomene — Starija dokumentacija ovu je funkciju nazivala TOBYTEARRAY; taj naziv u jeziku ne postoji. Funkcijom TOBYTES pripremite podatke za SENDDATA ili za UNPACKVALUE.

Primjer

VAR bytes := TOBYTES("Hello");
LENGTH(bytes);
# Result: 5
VAR euro := TOBYTES("€", "utf-8");
LENGTH(euro);
# Result: 3

Pogreške — TOBYTES - argument 1 must be a string (tekst je Null); TOBYTES - unknown encoding.

ENCODE

ENCODE zamjenjuje posebne znakove teksta za XML ("xml") ili ga kodira u Base64 ("base64", iz bajtova UTF-8 teksta).

1
ENCODE(text, coding)

Napomene

  • "xml" zamjenjuje &, ', ", > i < entitetima &amp;, &apos;, &quot;, &gt; i &lt;.
  • Prazan tekst vraća prazan string. Naziv kodiranja ne razlikuje velika i mala slova.
  • "base64" zahtijeva Core 2022.2 ili noviji.
  • "base64" kodira bajtove teksta u UTF-8. Za binarne podatke, na primjer šifrirane bajtove, koristite TOBASE64.

Primjer

ENCODE("a<b & c>d", "xml");
# Result: "a&lt;b &amp; c&gt;d"
ENCODE("user:pass", "base64");
# Result: "dXNlcjpwYXNz"

Primjer — zaglavlje autorizacije HTTP Basic

VAR auth := "Authorization: Basic " + ENCODE("user:pass", "base64");
VAR response := SENDHTTPREQUEST("/status", "GET", "", auth);

Pogreške — ENCODE Unknown encoding. Valid values are ‘xml’, ‘base64’.

DECODE

DECODE poništava ENCODE: XML entitete vraća u znakove ("xml") ili dekodira Base64 u tekst UTF-8 ("base64").

1
DECODE(text, coding)

Primjer

DECODE("dXNlcjpwYXNz", "base64");
# Result: "user:pass"
DECODE("a &lt; b", "xml");
# Result: "a < b"
DECODE(PARSEJSON(json, "payload"), "base64");

Napomene — "base64" vraća tekst u UTF-8, pa bajtovi iznad 0x7F ne ostaju ispravni. Binarne podatke, na primjer šifrirane bajtove, dekodirajte funkcijom FROMBASE64.

Pogreške — The provided text does not have the base64 format.; DECODE Unknown encoding. Valid values are ‘xml’, ‘base64’.

Vidi također — ENCODE, PARSEJSON.