我有一個名爲'UCN'的字段,它有6個字符。 此字段可以同時具有字符和數字值,如「A123Y5」或「12345Y」或「G23561」。Informix中的值4gl語言
我們需要在這裏用Pipe打印數據,如A | 1 | 2 | 3 | Y | 5。
我能夠把Integer與'使用'關鍵字,但無法把兩個在一起。
請如果有人能幫助 穆克什
我有一個名爲'UCN'的字段,它有6個字符。 此字段可以同時具有字符和數字值,如「A123Y5」或「12345Y」或「G23561」。Informix中的值4gl語言
我們需要在這裏用Pipe打印數據,如A | 1 | 2 | 3 | Y | 5。
我能夠把Integer與'使用'關鍵字,但無法把兩個在一起。
請如果有人能幫助 穆克什
我不認爲有一個捷徑。您需要:
PRINT ucn[1], '|', ucn[2], '|', ucn[3], '|', ucn[4], '|', ucn[5], '|', ucn[6]
如果它稍微長一點,您可以使用循環代替;有它自己的煩躁。
如果你正在爲我認爲你工作的人工作,我可以給你一個使用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,"|")
下面是代碼循環就像提到喬納森:
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