Rozpoznawanie poleceń

Za pomocą tego bloku można odczytać wartości z tekstu. Odpowiedni wzorzec wyszukiwania jest zdefiniowany we właściwościach.

Spis treści


Wejścia

Skrót Krótki opis Opis
T Text Input Tekst polecenia.




Wyjścia

Skrót Krótki opis Opis Zakres wartości
Lv Last extracted value Ostatnia uzyskana wartość




Właściwości

Krótki opis Opis Wartość standardowa
Rozpoznawanie poleceń Oznaczenia wartości:
\v - wartość,
\1 - oznaczenie pierwszego bajtu wartości (\2, \3, ...),
\h - wartość szesnastkowa

Znaki do poruszania się po tekście, pomija:
\. = dowolny znak,
\w = dowolne słowo,
\# = dowolna liczba,
\d = cyfra 0-9,
\m = Znak A-Z/a-z/0-9,
\a = Znak A-Z/a-z,
\s12 = pomiń 12 znaków,
\iText\i = przejdź za 'Text'

Znaki specjalne:
\x = liczba szesnastkowa (np. 0x09),
\\ = ukośnik,
\t = Tab (0x09),
\b = spacja (0x02) lub Tab (0x09),
\r = powrót (0x0d),
\n = nowa linijka (0x0a)
-
Interpretacja wartości ze znakiem Jeśli zaznaczone, podczas rozpoznawania poleceń wartości \1\2\3\4 będą używane ze znakiem (Signed Integer) -




Przykład programowania

Rozpoznawanie poleceń może być wykorzystywane do nawigacji w tekście lub tekście źródłowym oraz do pobierania wartości.

Znaki używane do wyodrębnienia wartości:
\v = wartość liczbowa
\1 = wartość bajtu interpretowanego jako pierwszy bajt wyjścia (\2, \3, ...)
- Jeśli odebrane dane są interpretowane jako szesnastkowe (np, "\x0A"), uzyskiwany jest dziesiętny odpowiednik (10 w tym przykładzie). Ta metoda działa również w przypadku wielu bajtów szesnastkowych (np. "\x0A\x0B"). Po połączeniu te bajty tworzą 32-bitową liczbę całkowitą 0x0A0B, a \2\1 zwraca 2571 w systemie dziesiętnym. Ta sama wartość, po wyodrębnieniu za pomocą \1, daje 10 w zapisie dziesiętnym.
- Jeśli odebrane dane są interpretowane jako tekst, każdy bajt reprezentuje znak ASCII. Na przykład "Loxone" odpowiada znakowi Line Feed o kodzie ASCII 76.
- Dane mogą być używane jako liczba całkowita ze znakiem, biorąc pod uwagę prawidłową kolejność bajtów i stosując rozszerzenie znaku, jeśli to konieczne.
\h = wartość interpretowana jako liczba szesnastkowa
- Jeśli odebrane dane są ciągiem szesnastkowym reprezentowanym jako tekst (np. "0A"), można go przekonwertować na jego dziesiętny odpowiednik (10 w tym przykładzie).
- Ta metoda działa również w przypadku wielu danych szesnastkowych (np. "0A0B"). Po przekonwertowaniu z szesnastkowego na dziesiętny, "0A0B" odpowiada 2571.

Znaki do nawigacji po tekście:
\. = dowolny znak
\w = dowolne słowo
\# = dowolna liczba
\d = cyfry 0-9
\m = znak A-Z/a-z/0-9
\a = znak A-Z/a-z
\s12 = pomiń 12 znaków
- Na przykład, \s12 pomija 12 znaków, gdy odebrane dane są ciągiem tekstowym.
- Jeśli odebrane dane są ciągiem szesnastkowym reprezentowanym przez sekwencje specjalne (np, \xFE\xFF\x00\x12\xA0\xB0\xC1\xD2\xE3\xF4\x11\x16\x17)wtedy \s12 pominie 12 bajtów szesnastkowych. W tym przypadku przeskoczy za \x16, efektywnie pomijając łącznie 48 znaków tekstowych (ponieważ każdy bajt szesnastkowy jest reprezentowany przez cztery znaki tekstowe).
\iText\i = przeskocz za "Text"

Znaki specjalne:
\x = liczba szesnastkowa (np.g. 0x09)
\ = Ukośnik
\t = Tab (0x09)
\b = Spacja (0x02) lub Tab (0x09)
\r = Return (0x0d)
\n = Nowa linia (0x0a)

W poniższym przykładzie zawsze chcemy pozyskać aktualną cenę gazu ziemnego:

Ponieważ wskazanie "Gaz ziemny" jest zawsze takie samo, przeskakujemy do tej pozycji w tekście. Aby pominąć wskazanie czasu i mieć możliwość odtworzenia ceny, istnieją różne możliwości:

Wariant 1 przez \d\a
Za pomocą \d pojedyncze cyfry i z \a pojedyncze znaki mogą być pominięte:

Wariant 2 przez \#
Za pomocą \# liczby, a za pomocą \w dowolne słowa można pominąć:

Wariant 3 przez \s8$
Ponieważ w tym przykładzie czas będzie miał zawsze taką samą liczbę cyfr i znaków, można je pominąć za pomocą \s8: