---
title: "Adattípus-konverziók"
description: "TapHome szkript konverziók: számok és dátumok formázása TOSTRING-gel, számok beolvasása TODOUBLE-lel, szövegből bájtok TOBYTES-szal, Base64 és XML az ENCODE-dal."
url: "https://taphome.com/hu/docs/script/data-type-conversions/"
language: hu
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["data-conversion","type-conversion","number-formatting","encoding","scripting-language"]
  questions: ["Hogyan alakíthatok át szöveget számmá TapHome szkriptben?","Hogyan formázhatok számot szöveggé a TapHome-ban?","Hogyan formázhatok számot két tizedesjeggyel?","Hogyan írhatok ki számot hexadecimálisan?","Hogyan formázhatok dátumot szöveggé egy TapHome szkriptben?","Hogyan alakíthatok át szöveget bájttömbbé?","Hogyan kódolhatok szöveget Base64-be egy TapHome szkriptben?","Hogyan escapelhetem a speciális karaktereket XML-hez?","Hol van leírva a TOBCD, FROMBCD, RGBTOHSV és HSVTORGB?"]
---

# Adattípus-konverziók

TapHome szkript konverziós függvények — TOSTRING szám- és dátumformátum-karakterláncokkal, TODOUBLE, TOBYTES, valamint ENCODE / DECODE XML-escapeléshez és Base64-hez.

Utoljára frissítve: 2026-11-06

A konverziós függvények értékeket alakítanak szöveggé és vissza: számokat és dátumokat formázott szöveggé, szöveget számmá és bájtokká, illetve szöveget Base64 vagy XML-biztos alakra. A BCD-konverzió (`TOBCD`, `FROMBCD`) a [Bitműveletek](https://taphome.com/hu/docs/script/bit-operations/) oldalon, a színkonverzió (`HSVTORGB`, `RGBTOHSV`) a [Színek](https://taphome.com/hu/docs/script/colours/) oldalon található.

## TOSTRING

A `TOSTRING` bármilyen értéket szöveggé alakít — számokat és dátumokat opcionális .NET formátum-karakterlánccal, bájtgyűjteményeket és blobokat szövegkódolással.

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

| Bemenet | Eredmény |
|---|---|
| szöveg | Változatlan. |
| szám | Formátum nélkül a szám tizedesponttal (`21.5`). Formátummal lásd: [Formátum-karakterláncok](https://taphome.com/hu/docs/script/data-type-conversions/#format-strings). |
| `datetime` | Formátum nélkül `yyyy/MM/dd hh:mm:ss.fff` (12 órás óra, AM vagy PM nélkül); formátummal a megadott minta. |
| `collection<uint8>`, blob | A bájtok szövegként dekódolva. A második argumentum a kódolás neve, alapértelmezés szerint `iso-8859-1`, például `"utf-8"`. |
| egyéb gyűjtemény | *Cannot cast collection of 'X' to string* hiba. |

**Példa**

```taphome
# hexadecimális szöveg, nagybetűk
TOSTRING(192, "X");
# Result: "C0"
TOSTRING(192, "X4");
# Result: "00C0"
# rögzített számú tizedesjegy
TOSTRING(123.34, "F4");
# Result: "123.3400"
TOSTRING(123.34, "F0");
# Result: "123"
# bájtok szövegként dekódolva
TOSTRING(BYTECOLLECTION("48656c6c6f"));
# Result: "Hello"
TOSTRING(BYTECOLLECTION("48656c6c6f"), "iso-8859-1");
# Result: "Hello"
```

Listener szkriptben a `TOSTRING(RECEIVEDMSG.PAYLOAD, "utf-8")` szövegként olvassa be a fogadott üzenetet — lásd: [RECEIVEDMSG](https://taphome.com/hu/docs/script/listener-scripts/#receivedmsg).

## Formátum-karakterláncok

A `TOSTRING` a számokat és dátumokat .NET formátum-karakterláncokkal formázza, és mindig tizedespontot használ, függetlenül a vezérlőegység nyelvi beállításaitól.

| Formátum | Bemenet | Kimenet |
|---|---|---|
| `"F2"` | `231.4721` | `"231.47"` — rögzített számú tizedesjegy |
| `"F0"` | `21.5` | `"22"` — egész számra kerekítve |
| `"0.0"` | `7` | `"7.0"` — egyéni minta |
| `"00"` | `7` | `"07"` — vezető nullák |
| `"X"`, `"X4"` | `255` | `"FF"`, `"00FF"` — hexadecimális, nagybetűs |
| `"yyyy-MM-dd"` | `datetime` | `"2026-01-15"` |
| `"HH:mm"` | `datetime` | `"08:30"` — 24 órás óra |
| `"dd.MM.yyyy HH:mm:ss"` | `datetime` | `"15.01.2026 08:30:00"` |

**Megjegyzések**

- A nagy `X` betűt tartalmazó formátum az értéket először 32 bites egész számmá alakítja, majd hexadecimálisan írja ki.
- Dátumformátumokban a `HH` a 24 órás, a `hh` a 12 órás óra; az `MM` a hónap, az `mm` a perc.

**Példa — időbélyeg naplóhoz vagy HTTP-kéréshez**

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

## TODOUBLE

A `TODOUBLE` tizedespontot használó szövegből olvas be számot, és `NaN` értéket ad vissza, ha a szöveg nem szám.

```text
TODOUBLE(text)
```

**Visszatérési érték** — `double`. `NaN`, ha a szöveg nem olvasható be; `0` a `Null` esetén.

**Megjegyzések** — A szöveg mindig tizedesponttal olvasódik be. A vessző ezres elválasztónak számít, így az `"1,5"` eredménye `15`. Ha a forrás tizedesvesszőt használ, előbb cseréld le a vesszőt.

**Példa**

```taphome
# tizedesponttal írt szöveg számmá
TODOUBLE("232");
# Result: 232
TODOUBLE("-192.332");
# Result: -192.332
# nem szám esetén NaN
TODOUBLE("some text");
# Result: NaN
# előbb a tizedesvessző cseréje ponttal
TODOUBLE(REPLACE("21,5", ",", "."));
# Result: 21.5
```

## TOBYTES

A `TOBYTES` a szöveget bájtgyűjteménnyé (`collection<uint8>`) kódolja, `iso-8859-1` kódolással, hacsak nem adsz meg másikat.

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

**Megjegyzések** — A régebbi dokumentáció ezt a függvényt `TOBYTEARRAY` néven említette; ez a név a nyelvben nem létezik. A `TOBYTES` függvénnyel készítheted elő az adatokat a [SENDDATA](https://taphome.com/hu/docs/script/packet-parser/#senddata) vagy az [UNPACKVALUE](https://taphome.com/hu/docs/script/binary-data/#unpackvalue) számára.

**Példa**

```taphome
# szöveg bájtokká, alapból iso-8859-1
VAR bytes := TOBYTES("Hello");
LENGTH(bytes);
# Result: 5
# kifejezetten megadott kódolás
VAR euro := TOBYTES("€", "utf-8");
LENGTH(euro);
# Result: 3
```

**Hibák** — *TOBYTES - argument 1 must be a string* (a szöveg `Null`); *TOBYTES - unknown encoding*.

## ENCODE

Az `ENCODE` a szöveget XML-hez escapeli (`"xml"`), vagy Base64-be kódolja (`"base64"`, a szöveg UTF-8 bájtjaiból).

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

**Megjegyzések**

- Az `"xml"` a `&`, `'`, `"`, `>` és `<` karaktereket `&amp;`, `&apos;`, `&quot;`, `&gt;` és `&lt;` alakra cseréli.
- Üres szövegre üres karakterláncot ad vissza. A kódolás neve nem érzékeny a kis- és nagybetűkre.
- A `"base64"` használatához szükséges verzió: Core 2022.2 vagy újabb.
- A `"base64"` a szöveg UTF-8 bájtjait kódolja. Bináris adatokhoz, például titkosított bájtokhoz a [TOBASE64](https://taphome.com/hu/docs/script/byte-encodings/#tobase64) függvényt használd.

**Példa**

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

**Példa — HTTP Basic hitelesítési fejléc**

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

**Hibák** — *ENCODE Unknown encoding. Valid values are 'xml', 'base64'*.

## DECODE

A `DECODE` az `ENCODE` fordítottja: az XML-entitásokat visszaalakítja karakterekké (`"xml"`), vagy a Base64-et UTF-8 szöveggé dekódolja (`"base64"`).

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

**Példa**

```taphome
# Base64 UTF-8 szöveggé
DECODE("dXNlcjpwYXNz", "base64");
# Result: "user:pass"
# XML entitás vissza karakterré
DECODE("a &lt; b", "xml");
# Result: "a < b"
# Base64 érték dekódolása JSON-ból
DECODE(PARSEJSON(json, "payload"), "base64");
```

**Megjegyzések** — A `"base64"` UTF-8 szöveget ad vissza, így a `0x7F` feletti bájtok nem maradnak épen. A bináris adatokat, például a titkosított bájtokat a [FROMBASE64](https://taphome.com/hu/docs/script/byte-encodings/#tobase64) függvénnyel dekódold.

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

**Lásd még** — [ENCODE](https://taphome.com/hu/docs/script/data-type-conversions/#encode), [PARSEJSON](https://taphome.com/hu/docs/script/parsing-functions/#parsejson).
