search cancel

CA Gen : Gen 8.0 のz/OSでのSubstrmixed関数について

book

Article ID: 135348

calendar_today

Updated On:

Products

Gen

Issue/Introduction

◆ 詳細内容

Q: z/OSのBlockmodeとサーバランタイム以外のすべてのランタイムはファンクションSUBSTRDBCSの引数である「開始位置」と「部分文字列⻑」には文字数を使用するように変更されていると思うが、半角文字と全角文字が混在する文字列の場合、「開始位置」と「部分文字列⻑」で意図した文字が返らない。

Environment

Release: r8.0


Component: CA Gen H/E

Resolution

A: z/OSのSubstrmixed関数の動作として、開始位置はシフトアウト、シフトイン制御コードも1文字として数えます。

出力文字が全角文字の場合で、シフトアウト、シフトインが含まれていない場合にはその前後にシフトアウト、シフトインが挿入されます。(もし出力フィールドに指定した⻑さを超える場合には最後の文字が削除されシフトインが挿入されます) その結果出力される文字の⻑さはシフトアウト、シフトインを含めた⻑さとなります。


例: 入力文字: 'ABCDE あいうえお CDEFG' の場合、'あいうえお'の前後の空白はシフトアウト、シフトインとする。

指定した(開始位置,⻑さ)に対する出力結果例


(6,3)->' あ '

(7,3)->' あ '

(6,7)->' あいうえお '


SUBSTRMIXED (Input_string,6,3) -> Output_string = ‘[shift-out]あ[shift-in]’

SUBSTRMIXED (Input_string,7,3) -> Output_string = ‘[shift-out]あ[shift-in]’

SUBSTRMIXED (Input_string,6,7) -> Output_string = '[shift-out]あいうえお[shift-in]’

 

Additional Information

Old Japanese Knowledge document ID: JTEC001806

CA Genのその他のFAQについては、以下のリンクからご確認ください。

CA Gen FAQ一覧表