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