STRREP - 文字列を置換

STRREP 関数は、ソース文字列内の特定の文字列のインスタンスをすべて置換します。NULL 文字列による置換も可能です。

文字列を置換

STRREP (inlength, instring, searchlength, searchstring, replength, repstring, outlength, output)

説明

inlength

数値

source_string のバイト数です。

instring

文字

ソース文字列です。

searchlength

数値

置換される文字列のバイト数です。

searchstring

文字

置換される文字列です。

replength

数値

置換文字列のバイト数です。この値は、0 (ゼロ) 以上である必要があります。

repstring

文字

置換文字列 (英数文字) です。replength が 0 (ゼロ) の場合は無視されます。

outlength

数値

結果として出力される文字列のバイト数です。この値は 1 以上である必要があります。

output

文字

すべての置換およびパディングが行われた後に出力される文字列です。

STRREP 関数使用上の注意

長さの最大値は 4095 です。

カンマとドル記号を置換

次の例では、STRREP 関数は、CS_ALPHA フィールド内のカンマ (,) とドル記号 ($) を検索して置換します。置換作業では、まずカンマ (,) を NULL 文字列で置き換えて CS_NOCOMMAS (カンマの削除) を生成し、次に右側の CURR_SAL フィールドのドル記号 ($) を (USD) に置き換えます。

TABLE FILE EMPLOYEE
SUM CURR_SAL NOPRINT
COMPUTE CS_ALPHA/A15=FTOA(CURR_SAL,'(D12.2M)',CS_ALPHA);
        CS_NOCOMMAS/A14=STRREP(15,CS_ALPHA,1,',',0,'X',14,CS_NOCOMMAS);
        CS_USD/A17=STRREP(14,CS_NOCOMMAS,1,'$',4,'USD ',17,CS_USD);
        NOPRINT
        CS_USD/R AS CURR_SAL
BY LAST_NAME
END

出力結果は次のとおりです。

LAST_NAME   CS_ALPHA             CS_NOCOMMAS                 CURR_SAL
---------   --------             -----------        -----------------
BANNING          $29,700.00           $29700.00          USD 29700.00
BLACKWOOD        $21,780.00           $21780.00          USD 21780.00
CROSS            $27,062.00           $27062.00          USD 27062.00
GREENSPAN         $9,000.00            $9000.00          USD  9000.00
IRVING           $26,862.00           $26862.00          USD 26862.00
JONES            $18,480.00           $18480.00          USD 18480.00
MCCOY            $18,480.00           $18480.00          USD 18480.00
MCKNIGHT         $16,100.00           $16100.00          USD 16100.00
ROMANS           $21,120.00           $21120.00          USD 21120.00
SMITH            $22,700.00           $22700.00          USD 22700.00
STEVENS          $11,000.00           $11000.00          USD 11000.00