日本-日本語
≫  お問い合わせ

製品とサービス >  ソフトウェアとOS >  OpenVMS >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS V8.3
ライブラリ

タイトルページ
目次
まえがき
第 1 章:リファレンス・セクション
付録 A:廃止されたコマンド
索引
PDF    Vol.1   Vol.2
OpenVMS ホーム

HP OpenVMS
DCL ディクショナリ


目次 索引

F$ELEMENT

指定した区切り文字で区切られた要素で構成される文字列から, 1 つの要素を取り出します。

形式

F$ELEMENT (要素番号, 区切り文字, 文字列)



戻り値


指定された要素を含む文字列。


引数



要素番号

取り出される要素の番号を指定します ( 要素番号は0から始まります )。 要素番号 引数は,整数式として指定します。 要素番号 が文字列に含まれる要素の数より大きい場合には,区切り文字が戻されます。

区切り文字

文字列に含まれる要素を区切るために,使用する文字を指定します。区切り文字は,文字列式として指定します。

文字列

区切り文字で区切られた要素のリストを含む文字列を指定します。文字列は,文字列式として指定します。

#1

$ DAY_LIST = "MON/TUE/WED/THU/FRI/SAT/SUN" 
$ INQUIRE DAY "ENTER DAY (MON TUE WED THU FRI SAT SUN)" 
$ NUM = 0 
$ LOOP: 
$       LABEL = F$ELEMENT(NUM,"/",DAY_LIST) 
$       IF LABEL .EQS. "/" THEN GOTO END 
$       IF DAY .EQS. LABEL THEN GOTO 'LABEL' 
$       NUM = NUM +1 
$       GOTO LOOP 
$ 
$ MON: 
   .
   .
   .

この例では,リストに含まれる要素のそれぞれと,入力値を比較するためのループが設定されています。 DAY に対する値が DAY_LIST の 1 要素と一致する場合には,制御は対応するラベルに移ります。 F$ELEMENT 関数から戻される値が区切り文字の場合には, DAY の値は DAY_LIST に含まれていないため,制御は END というラベルに移ります。

#2

$ ! INDEX.COM 
$ ! 
$ CHAPTERS = "0,1,2,3,4,5,6,A,B,C" 
$ NEXT = 0 
$ LOOP: 
$   NEXT = NEXT + 1 
$   NUM = F$ELEMENT(NEXT,",",CHAPTERS) 
$   IF (NUM .NES. ",") 
$   THEN 
$      RUN INDEX CHAP'NUM' 
$      GOTO LOOP 
$   ENDIF 
 

この例ではファイルに CHAP1, CHAP2, ... CHAP6, CHAPA, CHAPB, CHAPC という順に名前を付けるプロセスを示しています。プロシージャ・ロジックを初期化状態にするため,ゼロは CHAPTERS という文字列に含まれます。 NEXT はゼロに初期化されます。このプロシージャはループを実行します。最初の繰り返しで NEXT は 1 に増え,その結果 "1" を呼び出します。次にプロシージャは index, chapter1 を実行します。 2 回めの繰り返しで NEXT は 2 に増え,その結果 "1" を呼び出します。さらにプロシージャは index, chapter2 を実行し,指定した区切り文字を呼び出すまでプロセスは続きます。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項 ウェブマスターに連絡