%SUBST(获取子串)

%SUBST(string:start {:length {: *NATURAL | *STDCHARSIZE }})

%SUBST 返回参数字符串的一部分。 它也可以 用作具有 EVAL 操作码的赋值的结果。

start 参数表示子串的起始位置。

length 参数表示子串的长度。 如果未指定,那么长度是字符串参数的长度减去起始值加 1。

该字符串必须是 字符,图形或 UCS-2数据。 起始位置和长度可以是任何数字值或小数位数为零的数字表达式。 起始位置必须大于零。 长度可以大于或等于零。

当字符串参数为可变长度时,将根据当前长度而不是最大长度来检查其他参数的值。

第三个或第四个参数可以是 *NATURAL 或 *STDCHARSIZE ,以覆盖语句的当前 CHARCOUNT 方式。 如果指定了此参数,那么它必须是最后一个参数。
  • 指定 *NATURAL 以指示 %SUBST 以 CHARCOUNT NATURAL 方式运行。 起始位置和长度以字符计,而不是以字节或双字节计。 例如,如果基本字符串是值为 "ábç12" 的 UTF-8 字符串,那么 3 的起始位置表示 "ç" ,因为它是第三个字符。
  • 指定 *STDCHARSIZE 以指示 %SUBST 在 CHARCOUNT STDCHARSIZE 方式下运行。 在上一个示例中,使用 CHARCOUNT STDCHARSIZE 方式时, 3 的起始位置引用 "b" ,因为它是第三个字节。 字符 "á" 和 "ç" 是 2 字节字符。
请参阅 按每个字符的自然大小处理字符串数据字符数据类型
注: 由于 /CHARCOUNT 编译器伪指令或 CHARCOUNT 控制关键字, %SUBST 还可以在 CHARCOUNT NATURAL 方式下运行。

当指定为定义规范关键字的参数时,这些参数必须是字面值或表示字面值的命名常量。 当在自由格式计算规范上指定时,参数可以是任何表达式。

有关更多信息,请参阅 字符串操作内置函数