組み込み関数「文字列の取り出し関数(&SUBSTR)」と
「日本語検査関数(&JISZEN)」を使用することで可能です。
【実装例】
A CHAR(31) ; 全角半角が混在するCHAR型の変数
B CHAR(30) ; Aからの取得結果の格納先
C CHAR(2) ; Aから2バイト単位で格納
I SHORT ; 文字位置カウンタ
FOR I := 0 TO 29
C := &SUBSTR( A, I, 2 ) ; 変数AのIバイト目から2バイトをCに格納
; &SUBSTR()の第2引数は、0オリジンで指定
IF &JISZEN( C ) = 1 ; 変数Cが2バイト文字か?
THEN ; 2バイト文字
IF I >= 29 ; 30バイト目か?
THEN
&SUBSTR( B, I, 1 ) := ' ' ; 30バイト目に半角空白を格納
ELSE
&SUBSTR( B, I, 2 ) := C ; Aから取得した2バイトをコピー
I := I + 1 ; 文字位置カウンタを2バイト分進める
ELSE ; 2バイト文字でない
&SUBSTR( B, I, 1 ) := &SUBSTR( C, 0, 1 ) ; Aから取得した最初の1バイトをコピー
【確認済みのバージョン】HolonEnterprise 全てのバージョン
【確認済みの対象OS】すべてのOS
【カテゴリー】開発/設計(性能チューニング)