指定した文字列を削除する

[OS]ALL
[リリース] 6.07, 6.08, 6.09, 6.10
[キーワード] base, function, compress, kcompress, characters, delete, klength, kindex, kupdate

[質問]

COMPRESSまたはKCOMPRESS関数を使用すると特定の文字列を削除できますが、該当するすべての文字を削除してしまいます。
たとえば、次のステートメントは、"株"、"式"、"会"、"社"の4つの文字すべてが削除の対象になります。

name=kcompress(name,'株式会社');
上記の場合で"株式会社"という文字列だけを削除する方法はありませんか。

[回答]

関数を使って1ステートメントで削除する方法はありません。
しかし次のようなプログラムで処理できます。

i=1;
  len=klength('株式会社');
  do while(i>0);
    i=kindex(name,'株式会社');
    if i>0 then
      name=kupdate(name,i,len);
  end;

[参考]

  • 「SAS Technical Report J-116: DBCSサポート機能利用者の手引き(メインフレーム, VMS版), Release 6.07J」(注文番号 19116)
  • 「SAS Technical Report J-118: 日本語/DBCS機能使用の手引き, Release 6.08, 6.09」 (注文番号 19118)