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ótKrótki opisOpis
TText InputTekst polecenia.




Wyjścia

SkrótKrótki opisOpisZakres wartości
LvLast extracted valueOstatnia uzyskana wartość




Właściwości

Krótki opisOpisWartość 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 znakiemJeś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ć używane 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 1. bajt wyjścia (\2, \3, ...)

- Jeśli odebrane dane są interpretowane jako szesnastkowe (np. „\x0A”), otrzymywany 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 podpisane liczby całkowite, 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 je przekonwertować na ich 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 poruszania się 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), to \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 = skok za „Text”

Znaki specjalne:

\x = liczba szesnastkowa (np. 0x09)

\ = Slash

\t = Tab (0x09)

\b = spacja (0x02) lub tabulator (0x09)

⧵r = Return (0x0d)

⧵n = nowa linia (0x0a)

W poniższym przykładzie chcemy wyodrębnić bieżącą cenę gazu ziemnego:

Ponieważ tekst „Natural Gas” jest stały, możemy przejść do tej pozycji w tekście. Aby wyodrębnić bieżącą cenę, musimy pominąć wskazanie czasu. Istnieje kilka opcji, aby to zrobić:

Wariant 1 \d\a
Z \d pojedyncze cyfry i z \a pojedyncze znaki mogą zostać pominięte:

Wariant 2 \#\w
Za pomocą \# można pominąć liczbę, a za pomocą \w dowolne słowo:

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