日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
:= (文字列割り当て文) |
文字列値に対してシンボル名を定義します。
シンボル名 :=[=] 文字列シンボル名[オフセット,サイズ] :=[=] 置換文字列
注意 DCL コマンド名としてすでに使用されているシンボル名を割り当てないでください。 IF,THEN,ELSE,および GOTO のようなシンボルの割り当ては,コマンド・プロシージャの実行を妨げる可能性がありますので,行わないでください。 |
シンボル名
シンボル名に対して,1 文字から 255 文字までの文字列を定義します。シンボル名には,DEC 補助文字 (DEC MCS) 文字セットの英数字,アンダースコア (_),またはドル記号 ($) を含めることができます。ただし,シンボル名は英字 ( 大文字と小文字は同じとみなします ),アンダースコア,またはドル記号から始めなければなりません。割り当て文に等号を 1 つ (=) 指定すると,シンボル名を現在のコマンド・レベルのローカル・シンボル・テーブルに登録します。割り当て文に等号 2 つ(==) を指定すると,シンボル名をグローバル・シンボル・テーブルに登録します。文字列
シンボルに割り当てられる文字列値を指定します。この文字列には,英数字または特殊文字を含めることができます。DCL は,文字列割り当て文を記憶するために,1024 バイトのバッファを使用します。したがって,シンボル名,文字列,および文字列内に含まれるシンボル置換の長さは,1024 文字以下でなければなりません。文字列割り当て文 (:=) では,文字列リテラルを引用符 (" ") で囲む必要はありません。この場合には,文字列値は自動的に大文字に変換されます。また,文字列の前後のスペースやタブは削除され,文字の間の複数のスペースやタブは 1 つのスペースに変換されます。
大文字への変換をしないようにしたり,または文字列に含まれる必要なスペースとタブをそのまま保存するには,文字列を二重引用符で囲まなければなりません。文字列の内部で二重引用符を使用する場合には,文字列全体を二重引用符で囲み,さらに文字列の中で二重引用符を指定する場所に二重引用符を 2 つ指定します。次の例を参照してください。
$ TEST := "this is a ""test"" string" $ SHOW SYMBOL TEST TEST = "this is a "test" string"
この例では,スペース,小文字,および二重引用符は,シンボル定義の中にそのまま保存されます。
シンボル割り当てを複数行に継続するには,継続文字としてハイフン (-)を使用します。次の例を参照してください。
$ LONG_STRING := THIS_SYMBOL_ASSIGNMENT_IS_A_VERY_LONG- _$ _SYMBOL_STRING
文字列割り当て文を使って,空文字列をシンボルに割り当てるためには,割り当て文の右辺に文字列を指定しないようにします。次の例を参照してください。
$ NULL :=
文字列は,文字列リテラルとして指定するか,または文字列リテラルに評価されるシンボルかレキシカル関数として指定します。シンボルやレキシカル関数を使用する場合には,シンボル置換を要求するために一重引用符 (' ') で囲みます。シンボル置換についての詳細は,『OpenVMS ユーザーズ・マニュアル』を参照してください。
また,フォーリン・コマンドを定義するために,文字列割り当て文を使用することもできます。フォーリン・コマンドについての詳細は『OpenVMS ユーザーズ・マニュアル』を参照してください。
[オフセット,サイズ]
シンボル値の一部が置換文字によって上書きされることを指定します。この形式の文字列割り当て文は,シンボルに割り当てられている値を求め,その値の一部 ( オフセットとサイズによって定義されている部分 ) を置換文字列と置き換えます。この場合,かぎ括弧は必ず必要であり,シンボル名と左側のかぎ括弧の間には,スペースを指定できません。オフセットは,シンボル名の文字列値の先頭を基準にして,置換される最初の文字の相対位置を指定します。オフセットの値は 0 から始まります。
コマンドに指定したオフセットが,変更される文字列に含まれる最後の文字のオフセットより大きい場合には,文字列の最後と追加される置換文字列のオフセットの間に,スペースが挿入されます。指定できるオフセットの最大値は,768 です。
サイズは,置換される文字数を指定します。サイズの値は 1 から始まります。
オフセットとサイズは,整数式として指定します。整数式についての詳細は『OpenVMS ユーザーズ・マニュアル』を参照してください。サイズとオフセットを加算した値は,769 より小さくなければなりません。
置換文字列
変更される文字列を上書きするために使用される文字列を指定します。置換文字列がサイズ引数より短い場合には,指定されたサイズと等しくなるように,置換文字列の右側に空白が挿入されます。その後で,置換文字列を使って,シンボル名に割り当てられた文字列が上書きされます。置換文字列がサイズ引数より長い場合には,置換文字列の右側の部分が指定されたサイズまで切り捨てられます。置換文字列は,文字列リテラルとして指定するか,または文字列リテラルに評価されるシンボルやレキシカル関数として指定することができます。シンボルやレキシカル関数を使用する場合には,シンボル置換を要求するために,一重引用符 (' ') で囲まなければなりません。シンボル置換についての詳細は『OpenVMS ユーザーズ・マニュアル』を参照してください。
#1 |
---|
$ TIME := SHOW TIME $ TIME 14-DEC-2001 11:55:44 |
この例では,TIME というシンボルが,SHOW TIME というコマンド文字列と等しいと定義されます。この場合,シンボル名がコマンド文字列の最初の単語として指定されているため,コマンド・インタプリタは自動的にシンボル名を文字列値と置き換え,SHOW TIME コマンドを実行します。
#2 |
---|
$ STAT := $DKA1:[TEDESCO]STAT $ STAT |
この例では,STAT をフォーリン・コマンドとして定義する方法が示されています。 STAT というシンボルは,ドル記号で始まってその後にファイル指定が続く文字列に等しいものとして定義されています。コマンド・インタプリタは,ファイル指定が実行可能なイメージのファイル指定であること,つまり,ファイル・タイプが .EXE のファイルであると仮定します。
この後 STAT とタイプすると,コマンド・インタプリタはイメージを実行します。
#3 |
---|
$ A = "this is a big space." $ SHOW SYMBOL A A = "this is a big space." $ B := 'A' $ SHOW SYMBOL B B = "THIS IS A BIG SPACE." |
この例では,割り当て文と文字列割り当て文が比較されています。シンボル A は割り当て文を使って定義されているため,小文字や複数のスペースはそのまま保存されます。シンボル B は文字列割り当て文を使って定義されています。一重引用符 (' ') が必要な点に注意してください。一重引用符を使用しないと,B というシンボル名はリテラル文字列 A に等しいものとして定義されてしまいます。文字列割り当て文を使用すると,シンボル Aの値がシンボル B に割り当てられる際に,文字は大文字に変換され,複数のスペースは 1 つのスペースに変換されてしまいます。
#4 |
---|
$ FILE_NAME := MYFILE $ FILE_NAME[0,2]:= OL $ SHOW SYMBOL FILE_NAME FILE_NAME = "OLFILE" |
この例では,シンボル FILE_NAME に割り当てられた文字列の最初の 2 文字を,文字列 OL に変更する置換式が示されています。オフセット 0 は文字列の最初の文字を指定し,サイズ指定の 2 は,文字列の長さを指定しています。
#5 |
---|
$ FILE_NAME := MYFILE $ FILE_TYPE := .TST $ FILE_NAME[F$LENGTH(FILE_NAME),4] := 'FILE_TYPE' $ SHOW SYMBOL FILE_NAME FILE_NAME = "MYFILE.TST" |
この例では,シンボル FILE_NAME に文字列 MYFILE を,シンボル FILE_TYPE に文字列 .TST を各々代入しています。 3 番目の割り当て文では,レキシカル関数 F$LENGTH を用いて,上書きを始めるオフセット値を特定しています。シンボル FILE_TYPE は,置換文字列(.TST)を参照するために用いられます。シンボルの展開を要求するために,一重引用符 (' ') を指定しています。
レキシカル関数 F$LENGTH は,シンボル FILE_NAME の文字列の長さを返します。この値は,オフセットとして使用されます。シンボル FILE_TYPE の文字列の 4 文字を,FILE_NAME の文字列の最後に追加しています。シンボル FILE_NAME の結果は,文字列 MYFILE.TST になります。
目次 | 索引 |
|