# 日本語 Compaq OpenVMS
DEC XTPU
リファレンス・マニュアル

前へ | 次へ | 目次 | 索引

## 4.1.7 キーの定義

> ADD_KEY_MAP
> CREATE_KEY_MAP
> CREATE_KEY_MAP_LIST
> DEFINE_KEY
> KEY_NAME (＊)
> LAST_KEY
> LOOKUP_KEY
> REMOVE_KEY_MAP
> SET (KEY_MAP_LIST)
> SET (POST_KEY_PROCEDURE)
> SET (PRE_KEY_PROCEDURE)
> SET (SELF_INSERT)
> SET (SHIFT_KEY)
> SET (UNDEFINED_KEY)
> UNDEFINE_KEY

## 4.1.8 マルチ処理

> ATTACH
> CREATE_PROCESS
> SEND
> SEND_EOF
> SPAWN

## 4.1.9 プログラムおよびプロシージャの実行

> ABORT
> BREAK
> COMPILE
> EXECUTE
> RETURN
> SAVE

## 4.1.10 DECwindows

> CREATE_WIDGET
> DEFINE_WIDGET_CLASS
> GET_CLIPBOARD
> GET_DEFAULT
> GET_GLOBAL_SELECT
> LOWER_WIDGET
> MANAGE_WIDGET
> RAISE_WIDGET
> READ_CLIPBOARD
> READ_GLOBAL_SELECT
> REALISE_WIDGET
> SEND_CLIENT_MESSAGE
> SET (ACTIVE_AREA)
> SET (CLIENT_MESSAGE)
> SET (DEFAULT_FILE)
> SET (DRM_HIERARCHY)
> SET (ENABLE_RESIZE)
> SET (FIRST_INPUT_ACTION)
> SET (GLOBAL_SELECT)
> SET (GLOBAL_SELECT_GRAB)
> SET (GLOBAL_SELECT_READ)
> SET (GLOBAL_SELECT_TIME)
> SET (GLOBAL_SELECT_UNGRAB)
> SET (ICON_NAME)
> SET (ICON_PIXMAP)
> SET (ICONIFY_PIXMAP)
> SET (INPUT_FOCUS)
> SET (INPUT_FOCUS_GRAB)
> SET (INPUT_FOCUS_UNGRAB)
> SET (MAPPED_WHEN_MANAGED)
> SET (MENU_POSITION)
> SET (RESIZE_ACTION)
> SET (SCREEN_LIMITS)
> SET (SCROLL_BAR)
> SET (SCROLL_BAR_AUTO_THUMB)
> SET (UID)
> SET (WIDGET)
> SET (WIDGET_CALL_DATA)
> SET (WIDGET_CALLBACK)
> SET (WIDGET_CONTEXT_HELP)
> SET (WIDGET_RESOURCE_TYPES)
> UNMANAGE_WIDGET
> WRITE_CLIPBOARD
> WRITE_GLOBAL_SELECT

## 4.1.11 その他

> ASCII (＊)
> CALL_USER (＊)
> CODE (＊)
> COLUMN_LENGTH (＊)
> CONVERT
> CONVERT_KANA (＊)
> CREATE_ARRAY
> DEC_KANJI (＊)
> DELETE
> DELETE_TANGO (＊)
> ENTER_TANGO (＊)
> EXIT
> EXPAND_NAME
> FAO (＊)
> HELP_TEXT
> INDEX
> INT
> JOURNAL_CLOSE
> JOURNAL_OPEN
> LEARN_ABORT
> LEARN_BEGIN
> LEARN_END
> LENGTH
> MESSAGE
> QUIT
> READ_CHAR (＊)
> READ_KEY (＊)
> READ_LINE (＊)
> SET (EOB_TEXT)
> SLEEP
> STR
> SUBSTR
> SYMBOL (＊)

# 4.2 組込みプロシージャの説明

各組込みプロシージャの説明には下記の項目が含まれています。

- 簡単な機能定義

- 形式

- 説明

- 警告およびエラーを通知するシグナル・エラー

- 例

各組込みプロシージャはアルファベット順に説明されています。

注意 パラメータで使われる文字列のほとんどのものにはASCII 以外の文字を使用できますが，ファイル名，プロセス名などを指定するパラメータ文字列には，ASCII 文字のみが使用できます。

# ALIGN_CURSOR

> この組込みプロシージャは，カーソルが文字境界上に存在しないときに行の先頭方向へカーソルを移動して，文字境界にカーソルを合わせます。

## 形式

> [integer :=] ALIGN_CURSOR

## 引数

> ### なし

## 戻り値

> ALIGN_CURSORによって移動したカラム数。

## シグナル・エラー

> XTPU$_TOOMANY | ERROR | パラメータの数が多すぎる

# ASCII

> この組込みプロシージャは，整数を ASCII 文字(半角文字)列に変換するか，あるいは ASCII文字を整数に変換します。

## 形式

> {integer2 | string2} := ASCII ({integer1 | keyword | string1})

## 引数

> ### integer1

> ISO Latin1 文字セットに含まれる文字を示す 10 進数。

> ### keyword

> キーワードはキー名でなければなりません。キー名が印字可能文字を生成するキーの名前のときは，ASCII はその文字を返します。そうでなければ，ASCII の値が0 である文字を返します。

> ### string1

> ASCII 値を得たい文字。文字列の長さが1文字よりも長いときには，最初の文字の ASCII 値が得られます。

## 戻り値

> 指定された ASCII 値を持つ文字(integer または keyword パラメータを指定したとき)。または，指定された文字の ASCII 値 (string パラメータを指定したとき)。

## 説明

> ASCII 組込みプロシージャの基本的な説明は，『DEC Text Processing Utility Reference Manual』を参照してください。

> ASCII 組込みプロシージャはISO Latin1以外の文字を扱いません。このため以下のような制限事項があります。

> - パラメータ integer1 の値は0から255までのみが有効です。それ以外の値を指定したときには，ASCII の値が0である文字が戻されます。

> - string パラメータとしてISO Latin1文字セットに属さない文字を指定したときは，整数値0が戻されます。

> ISO Latin1 文字セットに属さない文字に関して，文字と数字の相互変換を行いたいときには，DEC_KANJI組込みプロシージャまたはCODE組込みプロシージャを使用してください。

## シグナル・エラー

> XTPU$_ARGMISMATCH | ERROR | パラメータのデータ・タイプが正しくない
> XTPU$_NEEDTOASSIGN | ERROR | ASCII は代入文の右辺でのみ使用できる
> XTPU$_NULLSTRING | WARNING | 長さ 0 の文字列が渡された
> XTPU$_TOOFEW | ERROR | パラメータの数が少なすぎる
> XTPU$_TOOMANY | ERROR | パラメータの数が多すぎる

## 例

>     1. my_character := ASCII (182)

> この代入ステートメントは my_character という変数に ISO Latin1 文字の"¶" を代入します。

>     2. character := ASCII ("B")

> この代入ステートメントは，"B" という文字のASCII値(66)を character という変数に代入します。

# CALL_USER

> この組込みプロシージャは，DEC XTPU の内部から他の言語で書かれたプログラムを呼び出します。CALL_USER のパラメータはそのまま外部ルーチンに渡されます。 DEC XTPU はパラメータに対して何の処理も行いません。パラメータ integer は参照によって渡され，string1 はディスクリプタによって渡されます。string2 は外部プログラムから返される値です。

## 形式

> string2 := CALL_USER (integer, string1)

## 引数

> ### integer

> ユーザ作成プログラムに参照によって渡される整数値。

> ### string1

> ユーザ作成プログラムにディスクリプタによって渡される文字列。

## 戻り値

> 呼び出されたプログラムから返される値。

## 説明

> CALL_USER に返される値 string2 に加えて，外部プログラムは正しく実行されたかどうかを示すステータス・コードを返します。このステータス・コードは，ON_ERROR 文によって処理することができます。偶数のステータス・コードが返されると ON_ERROR 文が実行されます。ERROR 文はプログラムからのステータス値をキーワードとして戻します。

> CALL_USER は次のように使用します。

> 1. 任意の言語でプログラムを書きます。そのプログラムは XTPU$CALLUSER という名前のグローバル・ルーチンでなければなりません。

> 2. プログラムをコンパイルします。

> 3. オプション・ファイルを使ってプログラムをリンクし，共有イメージを作ります。

> 4. 論理名 XTPU$CALLUSER に作ったルーチンが入ったファイルを定義します。

> 5. DEC XTPU を起動します。

> 6. 組込みプロシージャ CALL_USER に必要なパラメータを指定して，DEC XTPU セッションから外部プログラムを実行します。プログラムが正しくリンクされて論理名 XTPU$CALLUSER が定義されていると，組込みプロシージャ CALL_USER はパラメータを外部ルーチンに渡します。

> CALL_USER のパラメータは呼び出したプログラムへの入力パラメータになります。 DEC XTPU は，パラメータに対して何の処理も行わずに外部プロシージャに渡します。呼び出されるルーチンが必要としていない場合でも，パラメータは必ず2つ渡さなければなりません。値を渡す必要のないときには，以下のような NULL パラメータを渡してください。

>       CALL_USER (0, "")

## シグナル・エラー

> XTPU$_CALLUSERFAIL | WARNING | CALL_USER ルーチンの実行が失敗した
> XTPU$_ARGMISMATCH | ERROR | パラメータのデータ・タイプが正しくない
> XTPU$_BADUSERDESC | ERROR | ユーザ・ルーチンがリターン・ディスクリプタに正しくない値を入れた
> XTPU$_INVPARAM | ERROR | パラメータの型が間違っている
> XTPU$_NEEDTOASSIGN | ERROR | CALL_USER は代入文の右辺でのみ使用できる
> XTPU$_NOCALLUSER | ERROR | 実行するルーチンが光からない
> XTPU$_TOOFEW | ERROR | パラメータの数が少なすぎる
> XTPU$_TOOMANY | ERROR | パラメータの数が多すぎる

## 例

>       ret_value := CALL_USER (6, "ABC")

> この文はユーザが書いたプログラムを呼び出します。DEC XTPU を起動する前に論理名 XTPU$CALLUSER で CALL_USER によって呼び出したいプログラムが入っているファイルを指定します。DEC XTPU は第1パラメータ (6) を参照によって，第2パラメータ ("ABC") をディスクリプタによって渡します。もし数字と文字列を入力値として使っているならば，プログラムは 6 と "ABC" を処理します。プログラムが結果を返すように作られていれば，結果は ret_value に返されます。

> 以下の例は，組込みプロシージャ CALL_USER の使い方を具体的に示したものです。浮動小数点演算を行うために呼び出されるルーチンは，BASIC で書かれています。

> 1. 渡された値の浮動小数点演算を行う BASIC のプログラムを書きます。

>        ! Filename:FLOATARITH.BAS

>        1     sub XTPU$CALLUSER ( some_integer% , input_string$ , return_string$)

>        10    ! don't check some_integer% because this function only does
>              ! floating point arithmetric

>        20    ! parse the input string
>              ! find and extract the operation
>              comma_location = pos ( input_string$, "，", 1% )
>              if comma_location = 0 then go to all_done end if

>              operation$ = seg$( input_string$, 1%, comma_location - 1% )

>              ! find and extract the 1st operand
>              operand1_location = pos ( input_string$, "，", comma_location +1)
>              if operand1_location = 0 then go to all_done end if

>              operand1$ = seg$( input_string$, comma_location + 1%, &
>                                     operand1_location -1 )

>              ! find and extract the 2nd operand
>              operand2_location = pos ( input_string$, "，", operand1_location + 1)
>              if operand2_location = 0 then
>                      operand2_location = len( input_string$) + 1
>              end if

>              operand2$ = seg$( input_string$, operand1_location + 1%, &
>                                operand2_location -1 )

>              select operation$ ! do the operation
>              case "+"
>                      result$ = sum$( operand1$, operand2$ ) !
>              case "-"
>                      result$ = dif$( operand1$, operand2$ ) !
>              case "*"
>                      result$ = num1$( Val( operand1$ ) * Val( operand2$ ))
>              case "/"
>                      result$ = num1$( Val( operand1$ ) / Val( operand2$ ))
>              case else
>                      result$ = "unkown operation."
>              end select

>              return_string$ = result$

>        999   all_done: end sub

> 2. プログラムをコンパイルします。

>          $ BASIC/LIST floatarigh

> 3. BASIC のプログラムをリンクするときに使うオプション・ファイルを作ります。

>          !+
>          !   File: FLOATARITH.OPT
>          !
>          !   Options file to link floatarith BASIC program with VAXTPU
>          !-
>          FLOATARITH.OBJ
>          UNIVERSAL=XTPU$CALLUSER

> 4. プログラムをリンクし，共有イメージを作ります。

>          $ LINK floatarith/SHARE/OPT/MAP/FULL

> 5. 論理名 XTPU$CALLUSER に BASIC プログラムの実行イメージを定義します。

>          $ DEFINE XTPU$CALLUSER device:[directory]floatarith.EXE

> 6. DEC XTPU を起動します。

> 7. 以下の DEC XTPU プロシージャを書いてコンパイルします。

>          PROCEDURE my_call_user

>          ! test the built-in procedure call_user

>            LOCAL output，
>                  input;

>            input := READ_LINE ("Call user >");  ! パラメータを入力
>            output := CALL_USER (0, input);      ! プログラムの呼び出し
>            MESSAGE (output);
>          ENDPROCEDURE;

> 8. プロシージャ my_call_user を呼び出すと，BASIC ルーチンに渡すパラメータを聞いてきます。パラメータは，オペレータ，値，値の順番で渡されます。例えばプロンプトに，+, 3.33, 4.44 と入力すると結果の7.77 がメッセージ領域に表示されます。

前へ | 次へ | 目次 | 索引