---
title: "Konverzie dátových typov"
description: "Konverzie v skripte TapHome: formátovanie čísel a dátumov cez TOSTRING, čítanie čísel cez TODOUBLE, text na bajty cez TOBYTES, Base64 a XML cez ENCODE."
url: "https://taphome.com/sk/docs/script/data-type-conversions/"
language: sk
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["data-conversion","type-conversion","number-formatting","encoding","scripting-language"]
  questions: ["Ako prevediem reťazec na číslo v skripte TapHome?","Ako naformátujem číslo ako reťazec v TapHome?","Ako naformátujem číslo na dve desatinné miesta?","Ako vypíšem číslo hexadecimálne?","Ako v skripte TapHome naformátujem dátum ako text?","Ako prevediem reťazec na bajtové pole?","Ako v skripte TapHome zakódujem text do Base64?","Ako escapujem špeciálne znaky pre XML?","Kde je dokumentácia k TOBCD, FROMBCD, RGBTOHSV a HSVTORGB?"]
---

# Konverzie dátových typov

Konverzné funkcie skriptu TapHome — TOSTRING s formátovacími reťazcami pre čísla a dátumy, TODOUBLE, TOBYTES a ENCODE / DECODE na escapovanie XML a Base64.

Posledná aktualizácia: 2026-11-06

Konverzné funkcie prevádzajú hodnoty na text a späť: čísla a dátumy na formátovaný text, text na čísla a bajty a text do Base64 alebo do tvaru bezpečného pre XML. Konverzia BCD (`TOBCD`, `FROMBCD`) je na stránke [Bitové operácie](https://taphome.com/sk/docs/script/bit-operations/) a konverzia farieb (`HSVTORGB`, `RGBTOHSV`) na stránke [Farby](https://taphome.com/sk/docs/script/colours/).

## TOSTRING

`TOSTRING` prevedie ľubovoľnú hodnotu na text — čísla a dátumy s voliteľným .NET formátovacím reťazcom, bajtové kolekcie a bloby so zadaným kódovaním textu.

```text
TOSTRING(value)
TOSTRING(value, format)
TOSTRING(bytes, encoding)
```

| Vstup | Výsledok |
|---|---|
| reťazec | Bez zmeny. |
| číslo | Bez formátu holé číslo s desatinnou bodkou (`21.5`). S formátom pozrite [Formátovacie reťazce](https://taphome.com/sk/docs/script/data-type-conversions/#format-strings). |
| `datetime` | Bez formátu `yyyy/MM/dd hh:mm:ss.fff` (12-hodinový čas, bez AM a PM); s formátom podľa zadaného vzoru. |
| `collection<uint8>`, blob | Bajty dekódované ako text. Druhý argument je názov kódovania, predvolene `iso-8859-1`, napríklad `"utf-8"`. |
| iná kolekcia | Chyba *Cannot cast collection of 'X' to string*. |

**Príklad**

```taphome
# hexadecimálny text, veľké písmená
TOSTRING(192, "X");
# Result: "C0"
TOSTRING(192, "X4");
# Result: "00C0"
# pevný počet desatinných miest
TOSTRING(123.34, "F4");
# Result: "123.3400"
TOSTRING(123.34, "F0");
# Result: "123"
# bajty dekódované ako text
TOSTRING(BYTECOLLECTION("48656c6c6f"));
# Result: "Hello"
TOSTRING(BYTECOLLECTION("48656c6c6f"), "iso-8859-1");
# Result: "Hello"
```

V listener skripte prečíta `TOSTRING(RECEIVEDMSG.PAYLOAD, "utf-8")` prijatú správu ako text — pozrite [RECEIVEDMSG](https://taphome.com/sk/docs/script/listener-scripts/#receivedmsg).

## Formátovacie reťazce

`TOSTRING` formátuje čísla a dátumy .NET formátovacími reťazcami a vždy používa desatinnú bodku bez ohľadu na jazykové nastavenia riadiacej jednotky.

| Formát | Vstup | Výstup |
|---|---|---|
| `"F2"` | `231.4721` | `"231.47"` — pevný počet desatinných miest |
| `"F0"` | `21.5` | `"22"` — zaokrúhlené na celé číslo |
| `"0.0"` | `7` | `"7.0"` — vlastný vzor |
| `"00"` | `7` | `"07"` — úvodné nuly |
| `"X"`, `"X4"` | `255` | `"FF"`, `"00FF"` — hexadecimálne, veľkými písmenami |
| `"yyyy-MM-dd"` | `datetime` | `"2026-01-15"` |
| `"HH:mm"` | `datetime` | `"08:30"` — 24-hodinový čas |
| `"dd.MM.yyyy HH:mm:ss"` | `datetime` | `"15.01.2026 08:30:00"` |

**Poznámky**

- Formát, ktorý obsahuje veľké `X`, najprv prevedie hodnotu na 32-bitové celé číslo a potom ju vypíše hexadecimálne.
- V dátumových formátoch je `HH` 24-hodinový a `hh` 12-hodinový čas; `MM` je mesiac a `mm` minúta.

**Príklad — časová pečiatka pre záznam alebo HTTP požiadavku**

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

## TODOUBLE

`TODOUBLE` prečíta číslo z textu, ktorý používa desatinnú bodku, a keď text nie je číslo, vráti `NaN`.

```text
TODOUBLE(text)
```

**Návratová hodnota** — `double`. `NaN`, keď sa text nedá prečítať; `0` pre `Null`.

**Poznámky** — Text sa vždy číta s desatinnou bodkou. Čiarka sa berie ako oddeľovač tisícov, takže `"1,5"` dá `15`. Keď zdroj používa desatinnú čiarku, najprv ju nahraďte.

**Príklad**

```taphome
# text s desatinnou bodkou na číslo
TODOUBLE("232");
# Result: 232
TODOUBLE("-192.332");
# Result: -192.332
# text, ktorý nie je číslo, dá NaN
TODOUBLE("some text");
# Result: NaN
# najprv nahradiť desatinnú čiarku bodkou
TODOUBLE(REPLACE("21,5", ",", "."));
# Result: 21.5
```

## TOBYTES

`TOBYTES` zakóduje text do bajtovej kolekcie (`collection<uint8>`) v kódovaní `iso-8859-1`, ak nie je zadané iné.

```text
TOBYTES(text)
TOBYTES(text, encoding)
```

**Poznámky** — Staršia dokumentácia uvádzala túto funkciu pod názvom `TOBYTEARRAY`; taký názov v jazyku neexistuje. Na prípravu dát pre [SENDDATA](https://taphome.com/sk/docs/script/packet-parser/#senddata) alebo pre [UNPACKVALUE](https://taphome.com/sk/docs/script/binary-data/#unpackvalue) použite `TOBYTES`.

**Príklad**

```taphome
# text na bajty, predvolene iso-8859-1
VAR bytes := TOBYTES("Hello");
LENGTH(bytes);
# Result: 5
# kódovanie uvedené výslovne
VAR euro := TOBYTES("€", "utf-8");
LENGTH(euro);
# Result: 3
```

**Chyby** — *TOBYTES - argument 1 must be a string* (text je `Null`); *TOBYTES - unknown encoding*.

## ENCODE

`ENCODE` escapuje text pre XML (`"xml"`) alebo ho zakóduje do Base64 (`"base64"`, z UTF-8 bajtov textu).

```text
ENCODE(text, coding)
```

**Poznámky**

- `"xml"` nahradí `&`, `'`, `"`, `>` a `<` za `&amp;`, `&apos;`, `&quot;`, `&gt;` a `&lt;`.
- Prázdny text vráti prázdny reťazec. Na veľkosti písmen v názve kódovania nezáleží.
- `"base64"` potrebuje Core 2022.2 alebo novší.
- `"base64"` kóduje bajty textu v UTF-8. Na binárne dáta, napríklad zašifrované bajty, použite [TOBASE64](https://taphome.com/sk/docs/script/byte-encodings/#tobase64).

**Príklad**

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

**Príklad — hlavička HTTP Basic autorizácie**

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

**Chyby** — *ENCODE Unknown encoding. Valid values are 'xml', 'base64'*.

## DECODE

`DECODE` je opakom `ENCODE`: zmení XML entity späť na znaky (`"xml"`) alebo dekóduje Base64 na text v UTF-8 (`"base64"`).

```text
DECODE(text, coding)
```

**Príklad**

```taphome
# Base64 na text UTF-8
DECODE("dXNlcjpwYXNz", "base64");
# Result: "user:pass"
# entita XML späť na znak
DECODE("a &lt; b", "xml");
# Result: "a < b"
# dekódovanie hodnoty Base64 z JSON
DECODE(PARSEJSON(json, "payload"), "base64");
```

**Poznámky** — `"base64"` vráti text v UTF-8, takže bajty nad `0x7F` sa pokazia. Binárne dáta, napríklad zašifrované bajty, dekódujte funkciou [FROMBASE64](https://taphome.com/sk/docs/script/byte-encodings/#tobase64).

**Chyby** — *The provided text does not have the base64 format.*; *DECODE Unknown encoding. Valid values are 'xml', 'base64'*.

**Pozrite aj** — [ENCODE](https://taphome.com/sk/docs/script/data-type-conversions/#encode), [PARSEJSON](https://taphome.com/sk/docs/script/parsing-functions/#parsejson).
