如何获得字符类型变量在RPGLE的长度



是否有任何简单的方法直接返回字符和类型变量的长度在RPGLE?我在这里说的长度不是d规范中规定的长度。我说的是字符串中有意义字符的实际数目。假设一个字符类型变量被定义为50个字符长,并赋值为"Hello world!"',那么我想要的长度是12,也就是从'H'到'!'。忽略开头和结尾的空白。有什么简单的方法吗?

您可以使用%len(%trimr(field)),它在检查长度之前修剪尾随空格。

  • %triml修剪前导空格(左侧)
  • %trimr修饰尾随空格(右侧)
  • %trim修剪前后空格

看起来您要查找的字段长度是固定字符字段,如

     dmsg              s             40a

如果我们执行eval msg = 'Hello, World!,则msg不包含"Hello, World!"——它包含"Hello, World!"也就是说,它有一堆空白填充到40个字符。这就是固定长度字段的定义。

%trimr()可以很好地处理这些,它甚至有一个可选参数来定义应该修剪哪些字符。

另一方面,如果要使用可变长度字段

     dmsg              s             40a   Varying

然后执行eval msg = 'Hello, World!那么该字段实际上只包含分配给它的字符。在本例中,不需要%trimr();%len()将返回当前字段的长度。

相关内容

  • 没有找到相关文章

最新更新