日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
OpenVMS
|
目次 | 索引 |
15.7.1 データ・タイプの変換 |
整数と文字列の間で変換を行うには, F$INTEGER 関数と F$STRING 関数を使用します。たとえば,次のコマンド・プロシージャはデータ・タイプを変換します。ユーザが文字列を入力すると整数の同値が表示され,整数を入力すると文字列に変換して表示されます。 GOTO 文の中でラベル名を使用するときには, F$TYPE 関数をどのように使用したらよいかに注意してください。 F$TYPE は,シンボルのデータ・タイプに応じて,"STRING" または "INTEGER" を戻します。
$ IF P1 .EQS. "" THEN INQUIRE P1 "Value to be converted" $ GOTO CONVERT_'F$TYPE(P1)' $ $ CONVERT_STRING: $ WRITE SYS$OUTPUT "The string ''P1' is converted to ''F$INTEGER(P1)'" $ EXIT $ $ CONVERT_INTEGER: $ WRITE SYS$OUTPUT "The integer ''P1' is converted to ''F$STRING(P1)'" $ EXIT |
INQUIRE や READ などのコマンドは,文字列データしか受け付けません。これらのコマンドを使用して,整数式として評価したいデータを得るには, F$INTEGER 関数を使用してこのデータを変換してから評価します。
EXP シンボルを F$INTEGER 関数の引数として使用する場合には, EXP シンボルの前後に一重引用符 (') を置かなければなりません。こうすると,シンボル置換の最初のフェーズで EXP の値が置換されます。
次の例では,F$INTEGER 関数を使用して,整数式を評価します。
$ INQUIRE EXP "Enter integer expression" $ RES = F$INTEGER('EXP') $ WRITE SYS$OUTPUT "Result is",RES |
このコマンド・プロシージャからの出力は次のようになります。
Enter integer expression: 9 + 7 Result is 16 |
"9 + 7" の値が置換されます。F$INTEGER 関数が引数の "9 + 7" を処理する場合,式を評価して正しい結果を戻します。
15.7.3 シンボルの有無の判別
シンボルが存在するかどうかを判別するには,F$TYPE 関数を使用します。 F$TYPE 関数は,シンボルが未定義であると,空の文字列を戻します。
. . . $ IF F$TYPE(TEMP) .EQS. "" THEN TEMP = "YES" $ IF TEMP .EQS. "YES" THEN GOTO TEMP_SEC . . . |
このプロシージャは, TEMP シンボルが前に定義されているかどうかをテストします。定義済みの場合には,TEMP の正しい値が保持され, TEMP が定義されていない場合には, IF 文により "YES" の値が TEMP に割り当てられます。
目次 | 索引 |
|