有没有简单的方法可以在RPGLE中直接返回字符长度和类型变量?我在这里讨论的长度不是D规格中规定的长度。我在谈论字符串中有意义的字符的实际数量。让我们说一个字符类型变量被定义为50个字符长,它被赋值为' Hello world!',那么我想要的长度是12,来自&#39 ; H'到了'。前导和尾随空白被忽略。有没有简单的方法呢?
答案 0 :(得分:11)
您可以使用%len(%trimr(field))
,在检查长度之前修剪尾随空格。
%triml
修剪前导空格(左侧)%trimr
修剪尾随空格(右侧)%trim
修剪前导和尾随空格答案 1 :(得分:8)
看起来你试图找到长度的字段是一个固定的字符字段,比如
dmsg s 40a
如果我们做一个评估msg ='你好,世界!'然后msg不包含'Hello,World!' - 它包含'你好,世界! '也就是说,它有一堆空白可以填充40个字符。这就是固定长度字段的定义。
%trimr()可以很好地使用它们,甚至还有一个可选参数来定义应修剪哪些字符。
另一方面,如果你要使用不同长度的字段
dmsg s 40a Varying
然后做了一个评估msg ='Hello,World!'那么该字段实际上只包含分配给它的字符。在这种情况下,不需要%trimr(); %len()将返回字段的当前长度。