TapHome

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.

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 oldalon, a színkonverzió (HSVTORGB, RGBTOHSV) a Színek 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.

1
2
3
TOSTRING(value)
TOSTRING(value, format)
TOSTRING(bytes, encoding)
BemenetEredmény
szövegVáltozatlan.
számFormátum nélkül a szám tizedesponttal (21.5). Formátummal lásd: Formátum-karakterláncok.
datetimeFormá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>, blobA 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ényCannot cast collection of ‘X’ to string hiba.

Példa

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"

Listener szkriptben a TOSTRING(RECEIVEDMSG.PAYLOAD, "utf-8") szövegként olvassa be a fogadott üzenetet — lásd: 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átumBemenetKimenet
"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

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.

1
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

TODOUBLE("232");
# Result: 232
TODOUBLE("-192.332");
# Result: -192.332
TODOUBLE("some text");
# Result: NaN
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.

1
2
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 vagy az UNPACKVALUE számára.

Példa

VAR bytes := TOBYTES("Hello");
LENGTH(bytes);
# Result: 5
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).

1
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" Core 2022.2 vagy újabb verziót igényel.

Példa

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

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").

1
DECODE(text, coding)

Példa

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

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

Lásd még — ENCODE, PARSEJSON.