日本-日本語
日本HPホーム 製品 & サービス サポート & ドライバー ソリューション ご購入方法
≫  お問い合わせ

製品とサービス >  ソフトウェアとOS >  OpenVMS >  マニュアル >  V8.3ライブラリ

OpenVMS マニュアル


HP OpenVMS
DCL ディクショナリ


前へ 次へ 目次 索引




F$STRING

指定した式に相当する文字列を戻します。



形式

F$STRING (式)



戻り値


指定した式に相当する文字列



引数



F$STRING 関数によって評価される整数または文字列式を指定します。

整数式を指定した場合は,F$STRING 関数は,式を評価した後で文字列に変換し,文字列を返します。文字列式を指定した場合は,F$STRING は式を評価した結果を返します。

整数を文字列へ変換する時, F$STRING 関数は 10 進表現を使用し先行の 0 は省略します。負の整数を変換する場合は, F$STRING 関数は,整数を示す文字列の先頭にマイナス記号を付加します。






#1

$ A = 5
$ B = F$STRING(-2 + A)
$ SHOW SYMBOL B
  B = "3"
 

この例で,F$STRING 関数は,(--2 + A)という整数式の結果を,数値文字列 3 に変換します。まず,F$STRING 関数は,(--2 + A)という式を評価します。シンボル A の値である 5 は,整数式が評価されるときに自動的に置換されます。

整数式が評価されたあと, F$STRING 関数は,式から求められた 3 という整数を文字列の"3"に変換します。この文字列が,シンボル B に割り当てられます。



F$TIME

現在の日付 / 時刻を絶対時間形式で戻します。

F$TIME 関数には引数がありませんが,括弧は指定しなければなりません。




形式

F$TIME()



戻り値


現在の日付と時刻を含む文字列。戻される文字列は,次の形式の 23 文字から構成されます。


dd-mmm-yyyy hh:mm:ss.cc 

現在の日が 1 〜 9 の場合は,戻される文字列の最初の文字は空白です。文字列のうち時刻の部分は,常に文字列位置 13,つまり文字列の先頭から 12 文字のオフセット位置です。

返される文字列の空白を保持するには,等号 (=) を使用しなければなりません。文字列代入演算子 (:=) を使用すると,先行する空白文字が除かれます。




引数

なし。





#1

$ OPEN/WRITE OUTFILE DATA.DAT 
$ TIME_STAMP = F$TIME() 
$ WRITE OUTFILE TIME_STAMP 
 

この例では,F$TIME 関数を使用して,コマンド・プロシージャから作成したファイルに,タイムスタンプを記録する方法を示しています。 OUTFILE は DATA.DAT というファイルの論理名で,このファイルは書き込みのためにオープンされています。 F$TIME 関数は,現在の日付および時刻文字列を戻し,この文字列を, TIME_STAMP というシンボルに割り当てます。 WRITE コマンドは,日付および時刻文字列を OUTFILE に書き込みます。



F$TRNLNM

論理名を変換し,同値名文字列,または要求されている論理名の属性を戻します。



形式

F$TRNLNM (論理名 [,表] [,索引] [,モード] [,ケース] [,項目])



戻り値


指定した論理名の同値名,または属性。戻される値は, F$TRNLNM 関数に指定した引数に応じて,文字列または整数になります。 F$TRNLNM 関数は,一致するものがないと空文字列("")を戻します。



引数



論理名

変換される論理名を含む文字列を指定します。

論理名を変換するために,F$TRNLNM 関数が検索する論理名テーブル ( 1 つまたは複数 ) 名を含む文字列を指定します。ここで指定する引数は,論理名テーブルまたは論理名テーブルのリストに変換される,論理名でなければなりません。

論理名テーブルを指す論理名は,次に示す論理名テーブルのいずれかで定義しなければなりません。

  • LNM$SYSTEM_DIRECTORY

  • LNM$PROCESS_DIRECTORY

注意

F$TRNLNM 関数を使用した後, CREATE/NAME_TABLE コマンドを使用して論理名テーブルを作成し,それを F$TRNLNM にアクセス可能なプライベート・テーブルにしたい場合は,プライベート・テーブルを含めるよう,テーブル論理名のうちのいずれか 1 つを再定義しなければなりません。通常 F$TRNLNM によって検索されるすべてのテーブルを表示するには,次のコマンドを実行してください。


$ SHOW LOGICAL/STRUCTURE LNM$DCL_LOGICAL

詳細は, CREATE/NAME_TABLE および SHOW LOGICAL コマンドの説明を参照してください。

table パラメータを省略した場合,省略時の設定により LNM$DCL_LOGICAL が使用されます。つまり F$TRNLNM 関数は,論理名 LNM$DCL_LOGICAL の指す論理名テーブルを検索します。 LNM$DCL_LOGICAL が再定義されない限り,F$TRNLNM 関数は,プロセス,ジョブ,グループ,システムの論理名テーブルをこの順序で検索し,最初に一致した同値名を戻します。

索引

論理名が 2 回以上変換された場合,戻される同値名の数を指定します。論理名が定義されていると, インデックスは,名前がリストされた順序で同値名文字列を参照します。

インデックスは 0 で始まります。つまり,同値名リストの最初の名前はインデックス 0 によって参照されます。

索引 引数を指定しない場合には,省略時の値として 0 が使用されます。

モード

変換のアクセス・モードを指定します。アクセス・モードは,USER (省略時の設定),SUPERVISOR,EXECUTIVE,または KERNEL のいずれか 1 つを含む文字列で指定します。

F$TRNLNM 関数は,モード 引数で指定したアクセス・モードで作成された論理名の検索を開始します。一致する論理名が見つけられないと, F$TRNLNM 関数は,より内側のアクセス・モードで作成された論理名の検索を行い,最初に一致したものを戻します。たとえば,同一名の論理名が 2 つ定義されていて, 1 つは USER アクセス・モードで,もう 1 つは EXECUTIVE アクセス・モードで作成されたと仮定します。モード 引数に USER を指定すると, F$TRNLNM 関数は,エグゼクティブ・モードではなくユーザ・モードの,論理名の同値文字列を戻します。

ケース

実行される変換のタイプを指定します。ケース引数は,変換のケースおよび変換がインターロックされるかどうかの両方を制御します。

ケース引数には,CASE_BLIND ( 省略時の設定 ),CASE_SENSITIVE, NONINTERLOCKED ( 省略時の設定 ),INTERLOCKED の任意の組み合わせを指定することができます。

CASE_BLIND を指定すると,F$TRNLNM 関数は,ケースに関わりなく論理名テーブルで論理名を検索し,最初に見つかった論理名を変換して戻します。一致するものが見つからない場合は,この関数は空文字列 ("") を戻します。

CASE_SENSITIVE を指定すると,F$TRNLNM 関数は, 論理名 引数に指定したケースの論理名だけを検索します。正確に一致するものが見つからないと, F$TRNLNM 関数は空文字列 ("") を戻します。

INTERLOCKED を指定すると,F$TRNLNM 関数は,進行中のクラスタ単位の論理名のすべての修正が完了するまで実行されません。続いて一致するものが見つかると,変換の結果が返されます。一致するものが見つからないと, F$TRNLNM 関数は空文字列 ("") を戻します。

NOINTERLOCKED を指定すると,F$TRNLNM 関数は直ちに実行されます。一致するものが見つかると,変換の結果が返されます。一致するものが見つからないと, F$TRNLNM 関数は空文字列 ("")を戻します。

項目

指定した論理名に関して, F$TRNLNM 関数が戻す情報のタイプを含む文字列を指定します。次のいずれか 1 つを指定します。

項目 戻される
タイプ
戻される情報
ACCESS_MODE 文字列 論理名に対応するアクセス・モード。アクセス・モードは,USER,SUPERVISOR,EXECUTIVE,KERNEL のいずれか 1 つ。
CLUSTERWIDE 文字列 論理名がクラスタ単位の論理名テーブルにある場合は TRUE,そうでない場合は FALSE。
CONCEALED 文字列 論理名が作成されたときに, /TRANSLATION_ATTRIBUTES 修飾子を指定して, CONCEALED 属性を指定した場合は TRUE,そうでない場合は FALSE。 CONCEALED 属性は,隠し論理名を作成するために使用される。
CONFINE 文字列 論理名が制限されている場合は TRUE,そうでない場合は FALSE。論理名が制限されている(TRUE)場合には,論理名はサブプロセスにコピーされない。論理名が制限されていない(FALSE)場合には,その論理名はサブプロセスにコピーされる。
CRELOG 文字列 CRELOG 属性を使用して, $CRELOG システム・サービスまたは $CRELNM システム・サービスにより論理名が作成された場合は TRUE,そうでない場合は FALSE。
LENGTH 整数値 指定された論理名に対応する,同値名の長さを戻す。論理名に複数の同値名が与えられている場合には,F$TRNLNM 関数は,インデックス引数によって指定された名前の長さを戻す。
MAX_INDEX 整数値 論理名に対して定義されている最大のインデックスを戻す。インデックスは,1 つの論理名にいくつの同値名が与えられているかを示す。インデックスは 0 から始まる。つまり,インデックス 0 は,同値名リストの最初の名前を参照する。
NO_ALIAS 文字列 論理名が NO_ALIAS 属性を持つ場合は TRUE,そうでない場合は FLASE。 NO_ALIAS 属性は,同じ名前を持つ論理名を,より外部のアクセス・モードでは作成できないことを示す。
TABLE 文字列 論理名が,論理名テーブルを指す論理名である場合は TRUE,そうでない場合は FLASE。
TABLE_NAME 文字列 論理名が検出されたテーブル名。
TERMINAL 文字列 論理名が作成されたときに, /TRANSLATION_ATTRIBUTES 修飾子を指定して, TERMINAL 属性を指定した場合は TRUE,そうでない場合は FALSE。 TERMINAL 属性は,論理名が反復変換の対象にならないことを示す。
VALUE 文字列 省略時の設定。指定した論理名に対応する同値名を戻す。論理名に複数の同値名が与えられている場合は,F$TRNLNM 関数は,インデックス引数で指定した名前を戻す。




説明

F$TRNLNM レキシカル関数は, $TRNLNM システム・サービスを呼び出して論理名を変換し,同値名文字列,または指定した論理名の要求した属性を戻します。反復変換は行われません。つまり,一度変換された同値名文字列は,それが論理名であるかどうかチェックされません。

F$TRNLNM 関数を使用する場合は,最後に指定する引数の右側で使用するオプションの引数は省略できます。ただし,最後に指定する引数の左側で使用するオプションの引数を省略する場合は,プレースホルダとしてコンマ (,) を指定しなければなりません。

コマンド・プロシージャ内で F$TRNLNM 関数を使用すると,論理名の現在の同値名文字列を保存し,後でリストアすることができます。また,論理名が割り当てられているかどうか確認するために使用することもできます。






#1

$ SAVE_DIR = F$TRNLNM("SYS$DISK")+F$DIRECTORY() 
   .
   .
   .
$ SET DEFAULT 'SAVE_DIR' 

この割り当てステートメントは, F$DIRECTORY 関数から戻された値と F$TRNLNM 関数から戻された値を連結し,その結果である文字列を SAVE_DIR というシンボルに割り当てます。この場合 SAVE_DIR シンボルは,完全な装置およびディレクトリ名文字列から構成されます。

SYS$DISK という引数は文字列であるため,引用符 (" ") で囲まれています ( コマンド・インタプリタは,引数が二重引用符で囲まれていない限り,英字から始まるすべての引数を,シンボルまたはレキシカル関数として取り扱います )。省略可能な引数は指定されていないため,F$TRNLNM 関数は省略時の値を使用します。

コマンド・プロシージャの最後で,もとの省略時のディレクトリにリセットされます。ディレクトリを元に戻す場合には,シンボル置換を強制的に実行するために, SAVE_DIR というシンボルを一重引用符 (' ') で囲まなければなりません。

#2

$ DEFINE/TABLE=LNM$GROUP TERMINAL 'F$TRNLNM("SYS$OUTPUT")' 

この例は,コマンド・プロシージャから抜粋した行です。ここでは,(1) F$TRNLNM 関数を使用して,現在の出力装置の名前を判断し,(2) 同値文字列に基づいて,グループ論理名テーブルにエントリを作成します。

SYS$OUTPUT という引数は文字列であるため,二重引用符で囲まなければなりません。

また,この例では,レキシカル関数が強制的に評価されるようにするために, F$TRNLNM 関数自身も一重引用符で囲まなければなりません。引用符で囲まないと,DEFINE コマンドはレキシカル関数を自動的には評価しません。

#3

$ RESULT= -
_$ F$TRNLNM("INFILE","LNM$PROCESS",0,"SUPERVISOR",,"NO_ALIAS")
$ SHOW SYMBOL RESULT
  RESULT = "FALSE"

この例では,F$TRNLNM 関数は,論理名 INFILE を定義したプロセス論理名テーブルを検索します。まず,スーパバイザ・モードで作成された論理名 INFILE を検索します。一致するものがない場合は,エグゼクティブ・モードで作成された INFILE を検索します。

一致するものがあった場合は, INFILE という名前が NO_ALIAS 属性で作成されたかどうかを判断します。この例の場合, NO_ALIAS 属性は指定されていません。

#4

$ foo=f$trnlnm("FOO","LNM$SYSCLUSTER",,,"INTERLOCKED",) 
 

この例では,論理名 FOO が LNM$SYSCLUSTER テーブル内で INTERLOCKED 方式で検索されて変換が実行されます。すなわち,同一クラスタ内の現在のノード上あるいは別のノード上で進行中のクラスタ単位の論理名のすべての修正は,この変換が実行される前に完了します。これにより,変換が最新の FOO 定義に基づくものであることを保証します。

ケース変換が指定されていないので,省略時の設定の CASE_BLIND で実行されます。

#5

$ foo=f$trnlnm("FOO","LNM$SYSCLUSTER",,,"INTERLOCKED,CASE_SENSITIVE",) 

この例では,CASE_SENSITIVE および INTERLOCKED 変換の両方を指定します。



F$TYPE

シンボルのデータ・タイプを判断します。シンボルが整数と等しいと定義されている場合や,シンボルが有効な整数を構成する文字列と等しいと定義されている場合には, INTEGER という文字列が戻されます。

シンボルが有効な整数を構成しない文字列と等しいと定義されている場合には, STRING という文字列が戻されます。

シンボルが未定義の場合には,空文字列 ("") が戻されます。




形式

F$TYPE (シンボル名)



戻り値


シンボルが整数と等しいと定義されている場合や,シンボルが有効な整数を構成する文字列と等しいと定義されている場合には, INTEGER という文字列が戻されます。

シンボルが,コンテキスト・タイプ 引数に PROCESS を指定した F$CONTEXT 呼び出し,または F$PID 関数呼び出しにより,シンボルが作成された場合は,文字列 PROCESS_CONTEXT が戻されます。シンボルとキーワード CANCEL を使用して F$CONTEXT を呼び出すまで,または F$PID で空文字列("") を戻すまで,シンボルのタイプは変わりません。

同様に,F$CSID 関数で作成されたシンボルに対しては文字列 CLUSTER_SYSTEM_CONTEXT が戻されます。

シンボルがコンテキト・シンボルの場合, 表 DCLI-12 に示すタイプのいずれか 1 つが戻されます。

表 DCLI-12 コンテキスト・シンボル・タイプ
シンボル・タイプ シンボルを作成するレキシカル関数
PROCESS_CONTEXT F$PID または F$CONTEXT (PROCESS コンテンキスト・タイプ指定)
CLUSTER_SYSTEM_CONTEXT F$CSID

シンボルが有効な整数を構成しない文字列と等しいと定義されている場合,またはシンボルのタイプがコンテキストではない場合は,文字列 STRING が戻されます。

シンボルが未定義の場合には,空文字列が戻されます。




引数



シンボル名

評価されるシンボル名を指定します。





#1

$ NUM = "52"
$ TYPE = F$TYPE(NUM)
$ SHOW SYMBOL TYPE
  TYPE = "INTEGER"
 

この例では,F$TYPE 関数を使用して, NUM というシンボルのデータ・タイプを判断しています。シンボル NUM には,文字列 "52" が割り当てられています。この文字列は有効な整数を構成するため, F$TYPE 関数は文字列 INTEGER を戻します。

#2

$ NUM = 52
$ TYPE = F$TYPE(NUM)
$ SHOW SYMBOL TYPE
  TYPE = "INTEGER"

この例では,シンボル NUMには,整数の 52 が割り当てられています。したがって F$TYPE 関数は,このシンボルのタイプが整数データ・タイプであることを示しています。

#3

$ CHAR = "FIVE"
$ TYPE = F$TYPE(CHAR)
$ SHOW SYMBOL TYPE
  TYPE = "STRING"

この例では,シンボル CHAR には文字列 FIVE が割り当てられています。この文字列は有効な整数を構成しないため, F$TYPE 関数は,シンボルが文字列値を持つことを示しています。

#4

$ x = F$CONTEXT("PROCESS",CTX,"USERNAME","SMITH")
$ TYPE = F$TYPE(CTX)
$ SHOW SYMBOL TYPE
  TYPE = "PROCESS_CONTEXT"
$ x = F$CONTEXT("PROCESS",CTX,"CANCEL")
$ TYPE = F$TYPE(CTX)
$ SHOW SYMBOL TYPE
  TYPE = ""
 

この例では,context-type 引数に PROCESS を指定して F$CONTEXT 関数を呼び出してシンボルを作成したので, F$TYPE 関数は文字列 PROCESS_CONTEXT を戻します。シンボルと selection-item 引数に CANCEL を指定して F$CONTEXT を呼び出すまで,シンボルが戻すタイプは変わりません。


前へ 次へ 目次 索引



         印刷用画面へ

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