CBL_SPLIT_FILENAME

ファイル名をその構成要素、つまり、パス名、基本名および拡張子に分割する。

構文:
call "CBL_SPLIT_FILENAME" using     sj-param
                                    split-buffer
                          returning status-code
パラメタ:
呼び出しプロトタイプ使用時 ( 説明の読み方) PIC (32bitシステム)
sj-param Group predefined as cblt-splitjoin-buf containing: Group containing:
  cblte-sj-param-length   cblt-x2-compx   pic x(2) comp-x.
  cblte-sj-splitjoin-flg1   cblt-x1-compx   pic x comp-x.
  cblte-sj-splitjoin-flg2   cblt-x1-compx   pic x comp-x.
  cblte-sj-path-strt   cblt-x2-compx   pic x(2) comp-x.
  cblte-sj-path-len   cblt-x2-compx   pic x(2) comp-x.
  cblte-sj-cblte-sj-basename-strt   cblt-x2-compx   pic x(2) comp-x.
  cblte-sj-basename-len   cblt-x2-compx   pic x(2) comp-x.
  cblte-sj-extension-strt   cblt-x2-compx   pic x(2) comp-x.
  cblte-sj-extension-len   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-path-len   cblt-x2-compx   pic x(2) comp-x.
split-buffer pic x(n). pic x(n).
status-code 説明の読み方 参照
入力パラメタ:
param-length

sj-paramパラメータの長さ(バイト)で、cblte-sj-param-lengthの2バイトを含む。cblte-sj-param-lengthの通常の値は24。

splitjoin-flg1
ビット 内容
1
1 文字列はナル終了
0 文字列はスペース終了
0
1 新しいファイル名が大文字にフォールドされる
0 元の大文字/小文字が保存される
split-buf-len

split-bufferの長さ

split-buffer

分割する文字列

出力パラメタ:
cblte-sj-splitjoin-flg2
ビット 内容
2 ファイル名に意味のあるスペースが入っている場合設定される。

1

ワイルドカードがパス名に入っている場合設定される。

0

基本名または拡張子にワイルドカードが入っている場合設定される。

cblte-sj-path-strt

split-buffer内での装置名の先頭で、1から始まる。

cblte-sj-path-len

パス名の長さ。何も入ってない場合はゼロ。これは後に続くコロン(:)を含む。

cblte-sj-basename-strt

split-buffer内での基本名の先頭で、1から始まる。

cblte-sj-basename-len

基本名の長さ。何も入ってない場合はゼロ。これは後に続くピリオド(.)を含まない。

cblte-sj-extension-strt

split-buffer内での拡張子の先頭で、1から始まる。

cblte-sj-extension-len

<拡張子の長さ。何も入ってない場合はゼロ。これは先行するピリオド(.)を含まない。

cblte-sj-total-length

文字列内の合計文字数

cblte-sj-first-path-len

最初の\または/またはコロン(:)(含む)までの文字数。split-bufferにこれらのいずれも含まれてない場合、parametercblte-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)を設定することによって、本ルーチンを大文字にフォールドするようにできる。このビットが設定されていないと、元の大文字・小文字はそのまま保存される。

本ルーチンはナルで終了する文字列・スペースで終了する文字列のいずれも受け取る。cblte-sj-splitjoin-flg1の最下位ビットの次のビット(ビット1)を設定すると、ルーチンはナルで終了する文字列を受け取るものと予想する。このビットが設定されてないと、スペースで終了する文字列を受け取るものと予想する。

2個またはそれ以上のドット(.)がファイル名に含まれていると(パス名に含まれるドット(.) は数えない)、戻される拡張子は最後のドットとファイル名の終わりの間の文字列で構成される。基本名は最後のドット(.) (ドットは含まない)までの全てを含む。

拡張子のないファイル名と拡張子がスペースであるファイル名(つまり、最後の文字がドット(.)である基本名)を区別するためには、拡張子がスペースの場合は、cblte-sj-extension-lenは1でcblte-sj-extension-strtは最後のドット(.)を指す。

  CBL_SPLIT_FILENAMEの使用例

他参照:

関連項目