【问题标题】:How to get the length of character type variable in RPGLE?如何在 RPGLE 中获取字符类型变量的长度?
【发布时间】:2011-12-26 06:34:11
【问题描述】:

有没有什么简单的方法可以在RPGLE中直接返回字符长度和类型变量?我这里说的长度不是D-spec中规定的长度。我说的是字符串中有意义的字符的实际数量。假设一个字符类型变量被定义为 50 个字符长,并赋值为 'Hello world!',那么我想要的长度是 12,即从 'H' 到 '!'。忽略前导和尾随空格。有什么简单的方法吗?

【问题讨论】:

    标签: ibm-midrange rpgle variable-length


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

           dmsg              s             40a
      

      如果我们执行 eval msg = 'Hello, World!'那么味精不包含“你好,世界!” - 它包含“你好,世界! ' 也就是说,它有一堆空格来填充到 40 个字符。这就是固定长度字段的定义。

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

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

           dmsg              s             40a   Varying
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-18
        • 2019-12-08
        • 1970-01-01
        • 1970-01-01
        • 2018-09-28
        • 1970-01-01
        • 2022-09-29
        • 1970-01-01
        相关资源
        最近更新 更多