在结构化文本的值中找到第n个值

时间:2018-09-11 12:55:18

标签: st

我有VB和c#的经验,但没有ST的经验。我试图在值中找到第n个数字的值。即654321,当n = 3时,第n个值应返回4。是否可以在ST中执行此操作?

1 个答案:

答案 0 :(得分:0)

我建议将数字转换为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));