我有VB和c#的经验,但没有ST的经验。我试图在值中找到第n个数字的值。即654321,当n = 3时,第n个值应返回4。是否可以在ST中执行此操作?
答案 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));