CBL_SPLIT_FILENAME

ファイル名をそのコンポーネント部分 (パス名、ベース名、および拡張子) に分割します。

構文:

call "CBL_SPLIT_FILENAME" using     sj-param
                                    split-buffer
                          returning status-code

パラメーター

sj-param
cblt-splitjoin-buf として定義されている集団 (以下を含む)
01 cblt-splitjoin-buf                typedef.
  03 cblte-sj-param-length           cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-split-join-flag1       cblt-x1-compx. 	*> pic x comp-x.
  03 cblte-sj-split-join-flag2       cblt-x1-compx. 	*> pic x comp-x.
  03 cblte-sj-device-offset          cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-device-length          cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-basename-offset        cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-basename-length        cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-extension-offset       cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-extension-length       cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-total-length           cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-split-buf-len          cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-join-buf-len           cblt-x2-compx. 	*> pic x(2) comp-x.
  03 cblte-sj-first-component-length cblt-x2-compx. 	*> pic x(2) comp-x.
split-buffer
呼び出しプロトタイプ:pic x(n)
PIC:pic x(n)
status-code
「説明の読み方」を参照

入力パラメーター:

param-length
sj-param の長さ (バイト単位) で、cblte-sj-param-length 用の 2 バイトを含みます。cblte-sj-param-length の通常の値は 24 です。
splitjoin-flg1
ビット 1
1 文字列は null で終了します。
0 文字列は空白文字で終了します。
ビット 0
1 新しいファイル名は大文字に変換されます。
0 元の大文字と小文字が保持されます。
split-buf-len
split-buffer の長さ。
split-buffer
分割する文字列。

出力パラメーター:

cblte-sj-splitjoin-flg2
ビット 意味
2 ファイル名に有効な空白文字が含まれている場合に設定されます。
1 パスにワイルドカードが含まれている場合に設定されます。
0 ベース名または拡張子にワイルドカードが含まれている場合に設定されます。
cblte-sj-path-strt
1 を先頭とする、split-buffer 内でのパス名の開始位置。
cblte-sj-path-len
パス名の長さ。パス名がない場合はゼロになります。長さには名前の後に続くコロン (:) も含まれます。
cblte-sj-basename-strt
1 を先頭とする、split-buffer 内でのベース名の開始位置。
cblte-sj-basename-len
ベース名の長さ。ベース名がない場合はゼロになります。長さには名前に続くピリオド (.) は含まれません。
cblte-sj-extension-strt
1 を先頭とする、split-buffer 内での拡張子の開始位置。
cblte-sj-extension-len
拡張子の長さ。拡張子がない場合はゼロになります。長さには、拡張子の前のピリオド (.) は含まれません。
cblte-sj-total-length
文字列内の合計文字数。
cblte-sj-first-path-len
最初のバックスラッシュ (\)、スラッシュ (/)、またはコロン (:) までの文字数 (これらの文字を含む)。split-buffer にこれらの文字が含まれない場合、このパラメーターcblte-sj-path-len と等しくなります。
split-buffer
cblte-sj-splitjoin-flg1 のビット 0 が設定されている場合、大文字に変換されます。cblte-sj-splitjoin-flg1 のビット 1 が設定されておらず、split-buffer が、埋め込みの空白文字または引用符を含む、引用符で囲まれた名前である場合、不要な引用符はすべて削除されます。
status-code
戻り状態:
0 成功
4 無効なファイル名

説明:

このルーチンでは、cblte-sj-splitjoin-flg1 の最下位ビット (ビット 0) を設定することによって、大文字に変換するように指定できます。このビットを設定しない場合は、大文字と小文字の別は保持されます。

このルーチンは、null で終了する文字列または空白文字で終了する文字列のどちらも受け入れることができます。cblte-sj-splitjoin-flg1 の最下位から 2 番目のビット (ビット 1) を設定すると、null で終了する文字列と見なされます。このビットを設定しない場合は、空白文字で終了する文字列と見なされます。

ファイル名に 2 つ以上のピリオド (.) がある場合 (パス名のピリオド (.) は含まない)、返される拡張子は、最後のピリオド (.) からファイル名の末尾までの文字で構成されます。ベース名には、最後のピリオド (.) を除いたすべてが含まれます。

拡張子のないファイル名と空白文字の拡張子を持つファイル名 (最後の文字がピリオド (.) のベース名) を区別できるように、拡張子が空白文字の場合、cblte-sj-extension-len は 1 になり、cblte-sj-extension-strt は最後のピリオド (.) を指します。