0

6文字の「UCN」というフィールドがあります。このフィールドには、「A123Y5」、「12345Y」、「G23561」などの文字と数値の両方を含めることができます。

ここからパイプを A|1|2|3|Y|5 として出力する必要があります。

「using」キーワードを使用して整数を配置することはできますが、両方を一緒に配置することはできません。

誰かがMukeshを助けることができればお願いします

4

3 に答える 3

0

近道はないと思います。必要なもの:

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

わずかに長い場合は、代わりにループを使用できます。それはそれ自身の厄介さを持っています。

于 2016-07-27T00:45:28.480 に答える
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
于 2016-08-23T20:51:34.820 に答える
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,"|")
于 2016-07-27T21:46:20.930 に答える