ファイル名をそのコンポーネント部分 (パス名、ベース名、および拡張子) に分割します。
構文:
call "CBL_SPLIT_FILENAME" using sj-param
split-buffer
returning status-code
パラメーター
- sj-param
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-path-offset cblt-x2-compx. *> pic x(2) comp-x.
03 cblte-sj-path-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
- 「説明の読み方」を参照
入力パラメーター:
- cblte-sj-param-length
- sj-param の長さ (バイト単位) で、cblte-sj-param-length 用の 2 バイトを含みます。cblte-sj-param-length の通常の値は 24 です。
- cblte-sj-split-join-flag1
-
- ビット 1
-
1 |
文字列は null で終了します。 |
0 |
文字列は空白文字で終了します。 |
- ビット 0
-
1 |
新しいファイル名は大文字に変換されます。 |
0 |
元の大文字と小文字が保持されます。 |
- cblte-sj-split-buf-len
- split-buffer の長さ。
- cblte-sj-split-buffer
- 分割する文字列。
出力パラメーター:
- cblte-sj-split-join-flag2
-
ビット |
意味 |
2 |
ファイル名に有効な空白文字が含まれている場合に設定されます。 |
1 |
パスにワイルドカードが含まれている場合に設定されます。 |
0 |
ベース名または拡張子にワイルドカードが含まれている場合に設定されます。 |
- cblte-sj-path-offset
- 1 を先頭とする、split-buffer 内でのパス名の開始位置。
- cblte-sj-path-length
- パス名の長さ。パス名がない場合はゼロになります。長さには名前の後に続くコロン (:) も含まれます。
- cblte-sj-basename-offset
- 1 を先頭とする、split-buffer 内でのベース名の開始位置。
- cblte-sj-basename-length
- ベース名の長さ。ベース名がない場合はゼロになります。長さには名前に続くピリオド (.) は含まれません。
- cblte-sj-extension-offset
- 1 を先頭とする、split-buffer 内での拡張子の開始位置。
- cblte-sj-extension-len
- 拡張子の長さ。拡張子がない場合はゼロになります。長さには、拡張子の前のピリオド (.) は含まれません。
- cblte-sj-total-length
- 文字列内の合計文字数。
- cblte-sj-first-component-length
- 最初のバックスラッシュ (\)、スラッシュ (/)、またはコロン (:) までの文字数 (これらの文字を含む)。split-buffer にこれらの文字が含まれない場合、このパラメーターは cblte-sj-path-len と等しくなります。
- split-buffer
- cblte-sj-split-join-flag1 のビット 0 が設定されている場合、大文字に変換されます。cblte-sj-split-join-flag1 のビット 1 が設定されておらず、split-buffer が、埋め込みの空白文字または引用符を含む、引用符で囲まれた名前である場合、不要な引用符はすべて削除されます。
- status-code
- 戻り状態:
説明:
このルーチンでは、cblte-sj-split-join-flag1 の最下位ビット (ビット 0) を設定することによって、大文字に変換するように指定できます。このビットを設定しない場合は、大文字と小文字の別は保持されます。
このルーチンは、null で終了する文字列または空白文字で終了する文字列のどちらも受け入れることができます。cblte-sj-split-join-flag1 の最下位から 2 番目のビット (ビット 1) を設定すると、null で終了する文字列と見なされます。このビットを設定しない場合は、空白文字で終了する文字列と見なされます。
ファイル名に 2 つ以上のピリオド (.) がある場合 (パス名のピリオド (.) は含まない)、返される拡張子は、最後のピリオド (.) からファイル名の末尾までの文字で構成されます。ベース名には、最後のピリオド (.) を除いたすべてが含まれます。
拡張子のないファイル名と空白文字の拡張子を持つファイル名 (最後の文字がピリオド (.) のベース名) を区別できるように、拡張子が空白文字の場合、cblte-sj-extension-length は 1 になり、cblte-sj-extension-offset は最後のピリオド (.) を指します。