跳到主要内容

7.9.11 字符串转换为CHAR或BYTE的数组

功能

将字符串转换为CHAR或BYTE的数组

LD图形

alt text

参数说明

接口变量声明数据类型说明
SOURCE_STRINGInputSTRING复制操作的源字符串
POSInputDINT目标数组DEST_CHARS相对下标位置,从该位置处开始复制字符
POS 参数将从0开始计算,对应数组的起始下标位置
DEST_CHARSInOutArray of CHAR
Array of BYTE
复制操作的目标数组变量
将字符复制到 Array of (W)CHAR/ BYTE/ WORD 数据类型的结构中
CNTOutputDINT实际移动的字符数量
函数名称返回值INT错误信息
说明
  • 该指令可将从数据类型为 STRING 的SOURCE_STRING字符串复制到DEST_CHARS数组指定开始位置中

  • 原则上目标域DEST_CHARS中的字符量至少与从源字符串SOURCE_STRING中复制的字符数量相同

  • 如果目标域包含的字符数少于源字符串中的字符数,则将只写入最多与目标域最大长度相同的字符数

  • 使用参数 POS,可指定目标域中将写入的起始位置。如果POS参数的值超出DEST_CHARS 数组的限值,无法复制

  • 示范:如果应从第三个位置开始写入,则在参数 POS 中使用值“2”,以下实例 CNT输出的结果会等于6

返回值错误代码:

错误代码*(W#16#)说明
0000无错误,完整复制成功
0001截断复制成功,复制的源长度(字符串的实际长度)超过数组变量允许写入的长度
8251DEST_CHARS参数中的引用无效,无法复制
8382POS 参数的值超出DEST_CHARS 数组的限值,无法复制

示例

  • LD示例动图如下:

alt text

  • ST示例如下代码所示:
OUT:=STRING_TO_CHARS(
SOURCE_STRING:=ARR,
POS:=IN2,
DEST_CHARS:=IN1,
CNT=>IN3
);