st - 在结构化文本的值中查找第 n 个值
问题描述
我有VB和c#的经验,但没有ST。我试图在一个值中找到第 n 个数字的值。即 654321 当 n = 3 时的第 n 个值应该返回 4。在 ST 中可以做到这一点吗?
解决方案
我建议将数字转换为字符串,然后您可以从字符串中找到第 n 个字符。当然,你没有告诉你的数字 654321 是字符串还是数值,但这并不重要。
下面的代码从左边开始取第三个字符。如果您需要从右边获取数字,您可以使用 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));
推荐阅读
- python - 在限制行长的同时如何处理具有多个输出的函数 - python 样式指南
- java - 将结果限制为 1
- c - 循环中守卫的数组索引?它实际上在检查什么?
- c# - 从另一个应用程序读取一个应用程序的模型
- python - 循环遍历 WTForm 类字段
- ios - 在 Tab 更改并返回后 InputBarAccessoryView 视图不显示
- sql - 想要将存储过程获取的数据获取到 excel 文件(单张)
- reactjs - 如何在反应/打字稿中使用枚举
- python-3.x - LSTM陷入循环
- sql - 在 PL/SQL 中出现错误“PLS-00201:必须声明标识符 'JSON_VALUE'”