Parancs felismerés

Az értékeket kiolvashatjuk egy szövegből a blokk segítségével. A megfelelő keresésmintát a tulajdonságok határozzák meg.

Tartalom


Bemenetek↑

RövidítésRövid leírásLeírás
TText InputParancs szövege.




Kimenetek↑

RövidítésRövid leírásLeírásÉrtékhatár
LvLast extracted valueUtoljára kinyert érték∞




Tulajdonságok↑

Rövid leírásLeírásAlapértelmezett érték
Parancs felismeréseAz értéket felismerésére szolgáló parancsok:
v = érték,
1 = a kimeneti érték első bájtjaként értelmezett bájt (2, 3, ...),
h = hexadecimális számként értelmezett érték

Karakterek a szövegben való navigáláshoz:
. = bármilyen karakter,
w = bármilyen szó,
# = bármilyen szám,
d = 0-9,
m = A-Z / a-z / 0-9 karakterek,
a = A-Z / a-z karakterek
s12 = 12 karakter átugrása
iText i = Ugrás a 'Text'-re

Speciális karakterek:
x = hexadecimális szám (például 0x09),
\ = Slash,
t = Tab (0x09),
b = Space (0x02) vagy Tab (0x09),
r = Return (0x0d),
n = Új sor (0x0a)
-
Érték előjellelHa be van jelölve, a parancsfelismerés az 1, 2, 3 stb. algebrai előjellel együtt használják a parancsfelismerésben (Signed Integer).-



Programozási példa↑

A parancsfelimerést szövegben, forráskódban való navigáláshoz vagy érték kinyerésére használhatjuk.

Érték kinyeréséhez használt karakterek:

v = számos érték

1 = a kimenet 1. bájtjaként értelmezett bájt értéke (2, 3, ...)

- Ha fogadott adat hexadecimáliskét van értelmezve (pl.: "x0A"), a decimális egyenértéket (ebben a példában 10) kapjuk. Ez a módszer működik több hexadecimális bájt esetén is (pl.:"x0Ax0B"). Ezek a bájtok együttesen a 0x0A0B 32 bites egész számot alkotják, és 21, akkor 2571 decimális értéket kapjuk. Ugyan ez az érték, ha 1 -et használunk, a 10-es decimális értéket adja vissza.

- Ha a fogadott adat szövegként van értelmezve, minden bájt egy ASCII karaktart jelent. Például a „Loxone” a szöveg első nagy "L" betűje a 76-os ASCII-kódú karaktert jelenti.

- Az adatok előjeles egész (signed integer) számként használhatók a helyes bájtsorrend figyelembevételével és szükség esetén előjelkiterjesztéssel.

h = hexadecimális számként értelmezett érték

- Ha a fogadott adat egy hexa karakterlánc, amelyet szövegként ábrázolnak (pl. „0A”), akkor az átkonvertálható a decimális megfelelőjére (ebben a példában 10).

- Ez a módszer több hexa adat esetén is működik (pl. „0A0B”). Hexából decimálisra konvertálva a „0A0B” 2571-nek felel meg.

Szövegben való navigáláshoz használt karakterek:

. = bármilyen karakter

w = bármilyen szó

# = bármilyen szám

d = digitek 0-9

m = karakter A-Z/a-z/0-9

a = karakter A-Z/a-z

s12 = kihagy 12 karaktert
- Például.: s12 kihagy 12 karaktert, ha a fogadott üzenet szöveges üzenet.

- Ha a fogadott adat egy hexa karakterlánc, amelyet escape-szekvenciákkal ábrázolunk (pl. xFExFFx00x12xA0xB0xC1xD2xE3xF4x11x16x17), akkor a s12 12 hexa bájtot fog kihagyni. Ebben az esetben x16 mögé fog ugrani, és így összesen 48 szövegkaraktert fog kihagyni (mivel minden hexa bájtot négy szövegkarakter képvisel).

iTexti = ugrás a szöveg mögé"Text"

Speciális karakterek:

x = Hexadecimális szám (pl.: 0x09)

\ = Slash

t = Tab (0x09)

b = Space (0x02) vagy Tab (0x09)

⧵r = Return (0x0d)

⧵n = Newline (0x0a)

A következő példában, a gáz aktuális árát szeretnénk kinyerni:

Miután a "Natural Gas" egy állandó, ezért ehhez a pozícióhoz tudunk ugrani a szövegben. Az aktuális ár kinyeréséhez, ki kell hagynunk az időt. Itt több megoldás is van:

1. Megoldás: da használata
A d segítségével egy digitet és a a-val egy karaktert tudunk kihagyni:

2. Megoldás: #w használata
A # segítségével egy számot és a w-vel egy szót tudunk kihagyni:

3. Megoldás: s8 használata
Miután a példában az idő minden esetben ugyan annyi számból és digitből fog állni, ezért ki lehet őket hagyni a s8 segítségével: