2016-07-26 49 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