ファイル名の構成要素、つまり、パス名、基本名および拡張子を結合してファイル名を形成する。
call "CBL_JOIN_FILENAME" using sj-param join-buffer path-buffer basename-buffer extension-buffer returning status-code
呼び出しプロトタイプ使用時 ( 説明の読み方) | PIC (32 ビット システム) | ||||
---|---|---|---|---|---|
sj-param | A group item predefined as cblt-splitjoin-buf, containing the following subordinate items: | Group containing: | |||
cblte-sj-param-length | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-split-join-flag1 | cblt-x1-compx | pic x comp-x. | |||
cblte-sj-split-join-flag2 | cblt-x1-compx | pic x comp-x. | |||
cblte-sj-device-offset | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-device-length | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-basename-offset | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-basename-length | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-extension-offset | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-extension-length | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-total-length | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-split-buf-len | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-join-buf-len | cblt-x2-compx | pic x(2) comp-x. | |||
cblte-sj-first-component-length | cblt-x2-compx | pic x(2) comp-x. | |||
join-buffer | pic x(n). | pic x(n). | |||
path-buffer | pic x(n). | pic x(n). | |||
basename-buffer | pic x(n). | pic x(n). | |||
extension-buffer | pic x(n). | pic x(n). | |||
status-code | 説明の読み方 参照 |
cblte-sj-param-length | sj-paramの長さ(バイト)で、cblte-sj-param-length用の2バイトを含む。cblte-sj-param-lengthの通常の値は24。 |
||||||||||||
cblte-sj-split-join-flag1 | 次のように設定する
|
||||||||||||
cblte-sj-split-join-flag2 | 次のように設定する
|
||||||||||||
cblte-sj-device-offset | path-buffer内でのパス名の先頭の相対番地(1から指標付け) |
||||||||||||
cblte-sj-device length | スペース終了でもナル終了でもない場合の装置名の長さ |
||||||||||||
cblte-sj-basename-offset | basename-buffer内での基本名の先頭の相対番地(1から指標付け) |
||||||||||||
cblte-sj-basename-length | スペース終了でもナル終了でもない場合の基本名長 |
||||||||||||
cblte-sj-extension-offset | extension-buffer内での拡張子の先頭の相対番地(1から指標付け) |
||||||||||||
cblte-sj-extension-length | スペース終了でもナル終了でもない場合の拡張子長 |
||||||||||||
path-buffer | パス名 |
||||||||||||
basename-buffer | 基本名 | ||||||||||||
extension-buffer | 拡張子 | ||||||||||||
cblte-sj-join-buf-len | join-bufferの長さ |
cblte-sj-total-length | ファイル名の合計文字数 |
||||||
join-buffer | 結合ファイル名 |
||||||
status-code | 戻り状態:
|
新しいファイル名は以下の項目を結合して形成される。
cblte-sj-total-lengthの長さのjoin-bufferに格納される。
cblte-sj-split-join-flag1の最下位のビット(ビット0)を設定することによって、本ルーチンを大文字にフォールドするようにできる。このビットが設定されていないと、元の大文字と小文字はそのまま保存される。
本ルーチンはナルで終了する文字列またはスペースで終了する文字列のいずれも受け取る。cblte-sj-split-join-flag1の最下位ビットの次のビット(ビット1)を設定すると、ルーチンはナルで終了する文字列を受け取るものと予想する。このビットが設定されてないと、スペースで終了する文字列を受け取るものと予想する。
パス名、基本名、および拡張子の各項目は、それらがスペースまたはナル(cblte-sj-split-join-flag1のビット1の設定に依る)で終了していれば、それぞれcblte-sj-path-length、cblte-sj-basename-length、およびcblte-sj-extension-lengthで指定された長さより短くできる。
path-buffer、 basename-buffer、 extension-bufferおよび join-bufferは4つの別個のバッファーとする必要はない。これは、ファイル名の1つの構成要素を置き換えるのに、本ルーチンをCBL_SPLIT_FILENAMEと一緒に使用できることを意味している。
path-bufferが空でなく、後続円記号(\)または斜線(/)またはコロン(:)が入っておらず、さらにbasename-bufferが空でない場合、本ルーチンはbasename-buffer内のパス名と基本名の間に\を挿入する。
拡張子がピリオド(.)の場合、join-bufferに入れて戻される文字列はスペースの拡張子を持つ。つまり、ファイル名には終了ピリオドが付く。
cblte-sj-total-lengthがcblte-sj-join-buf-lenより短いと、ファイル名の終わりに続く文字列はcblte-sj-split-join-flag1のビット1によりナル列またはスペース列となる。
パス名が有効なドライブ文字で構成されているがコロンがない場合、本ルーチンがコロンを追加する。コロンを必要としない装置(例えばLPT1)については追加は行わない。装置(例えば、ドライブ文字に対立するものとしてのLPT1)を空でない基本名に結合することはできない。
ファイル名ルーチン - 例************************************************************CBL_JOIN_FILENAMEの使用例