我有一个名为'UCN'的字段,有6个字符。 这个字段可以同时具有字符和数字值,如“A123Y5”或“12345Y”或“G23561”,有些东西就像这样。
我们需要使用Pipe打印数据,如A | 1 | 2 | 3 | Y | 5.
我可以将Integer与'using'关键字放在一起,但无法将两者放在一起。
请有人帮忙 穆克什
答案 0 :(得分:0)
我认为没有捷径。你需要:
PRINT ucn[1], '|', ucn[2], '|', ucn[3], '|', ucn[4], '|', ucn[5], '|', ucn[6]
如果它稍微长一点,你可以改用循环;它有自己的繁琐。
答案 1 :(得分: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,"|")
答案 2 :(得分:0)
以下是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