【问题标题】:Values in Informix 4gl LanguageInformix 4gl 语言中的值
【发布时间】:2016-07-26 12:20:55
【问题描述】:

我有一个名为“UCN”的字段,它有 6 个字符。 此字段可以同时具有字符和数值,例如“A123Y5”或“12345Y”或“G23561”,例如这样。

我们需要从这里打印数据,管道为 A|1|2|3|Y|5。

我可以将整数与“使用”关键字放在一起,但无法将两者放在一起。

如果有人可以帮忙,请 穆克什

【问题讨论】:

    标签: informix 4gl


    【解决方案1】:

    我认为没有捷径可走。你需要:

    PRINT ucn[1], '|', ucn[2], '|', ucn[3], '|', ucn[4], '|', ucn[5], '|', ucn[6]
    

    如果它稍微长一点,你可以使用一个循环来代替;这有它自己的复杂性。

    【讨论】:

      【解决方案2】:

      如果您正在为我认为您正在为之工作的人工作,我可以使用 4GL 的一些 Genero 扩展来给您一个答案。创建一个库函数,如 ...

      FUNCTION insert_between_each_char(str,delimiter)
      DEFINE str STRING
      DEFINE delimiter CHAR(1)
      
      DEFINE sb base.StringBuffer
      DEFINE i INTEGER
      
          LET sb = base.StringBuffer.create()
          CALL sb.append(str)
          FOR i = sb.getLength() TO 2 STEP -1
              CALL sb.insertAt(i,delimiter)
          END FOR
          RETURN sb.toString()
      END FUNCTION
      

      ...然后你的代码就变成了

      PRINT insert_between_each_char(ucn,"|")
      

      【讨论】:

        【解决方案3】:

        这是 Jonathan 提到的循环代码:

           DEFINE 
              l_result   char(512),
              l_sel      LIKE table.UCN,
              i          integer
        
             LET l_sel = "A123Y5" #Or select into l_sel
        
             FOR i = 1 to length(l_sel)
                IF i < length(l_sel)
                THEN
                   LET l_result = l_result, l_sel[i], "|"
                END IF
             END FOR
        
             PRINT l_result
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多