2016-07-26 91 views
0

我有一个名为'UCN'的字段,它有6个字符。 此字段可以同时具有字符和数字值,如“A123Y5”或“12345Y”或“G23561”。Informix中的值4gl语言

我们需要在这里用Pipe打印数据,如A | 1 | 2 | 3 | Y | 5。

我能够把Integer与'使用'关键字,但无法把两个在一起。

请如果有人能帮助 穆克什

回答

0

我不认为有一个捷径。您需要:

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

如果它稍微长一点,您可以使用循环代替;有它自己的烦躁。

0

如果你正在为我认为你工作的人工作,我可以给你一个使用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,"|") 
0

下面是代码循环就像提到乔纳森:

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