найти n-е значение в значении в структурированном тексте - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть опыт работы с VB и c #, но не с ST. Я пытаюсь найти значение n-й цифры в значении. т.е. 654321 n-е значение, когда n = 3, должно возвращаться 4. Возможно ли это сделать в ST?

1 Ответ

0 голосов
/ 12 сентября 2018

Я предлагаю преобразовать число в STRING, а затем вы можете найти n-й символ из строки. Конечно, вы не сказали этого, если ваш номер 654321 является строковым или числовым значением, но это не имеет значения.

Следующий код занимает 3-й символ слева. Если вам нужно получить цифру справа, вы можете отредактировать код с помощью функций LEN () и т. Д.

VAR
    TestNumber          : DINT;
    TestString          : STRING;
    NthDigitAsString    : STRING(1);
    NthDigit            : BYTE;
END_VAR

TestNumber := 654321;

//Convert to string
TestString := DINT_TO_STRING(TestNumber);

//Find the 3rd character (counting from from left)
NthDigitAsString := MID(TestString, 1, 3);

//Convert the character to number (if necessary)
NthDigit := STRING_TO_BYTE(NthDigitAsString);

Это, конечно, длинная версия. Найдите однострочник ниже:

NthDigit := STRING_TO_BYTE(MID(DINT_TO_STRING(654321), 1, 3));
...