日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
日本語 HP OpenVMS
|
目次 | 索引 |
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 は次のように使用します。
- 任意の言語でプログラムを書きます。そのプログラムは XTPU$CALLUSER という名前のグローバル・ルーチンでなければなりません。
- プログラムをコンパイルします。
- オプション・ファイルを使ってプログラムをリンクし,共有イメージを作ります。
- 論理名 XTPU$CALLUSER に作ったルーチンが入ったファイルを定義します。
- DEC XTPU を起動します。
- 組込みプロシージャ 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 で書かれています。
- 渡された値の浮動小数点演算を行う 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
- プログラムをコンパイルします。
$ BASIC/LIST floatarigh
- BASIC のプログラムをリンクするときに使うオプション・ファイルを作ります。
!+ ! File: FLOATARITH.OPT ! ! Options file to link floatarith BASIC program with VAXTPU !- FLOATARITH.OBJ UNIVERSAL=XTPU$CALLUSER
- プログラムをリンクし,共有イメージを作ります。
$ LINK floatarith/SHARE/OPT/MAP/FULL
- 論理名 XTPU$CALLUSER に BASIC プログラムの実行イメージを定義します。
$ DEFINE XTPU$CALLUSER device:[directory]floatarith.EXE
- DEC XTPU を起動します。
- 以下の 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;
- プロシージャ my_call_user を呼び出すと,BASIC ルーチンに渡すパラメータを聞いてきます。パラメータは,オペレータ,値,値の順番で渡されます。例えばプロンプトに,+, 3.33, 4.44 と入力すると結果の7.77 がメッセージ領域に表示されます。
CHANGE_CASE |
この組込みプロシージャは,指定されたキーワードに従って,指定されたバッファ,レンジ,または文字列中のテキストの,大文字/小文字変換,ひらがな/カタカナ/半角カナ変換,全角Latin文字/半角Latin文字変換,および ASCIIからひらがなへの変換を実行します。CHANGE_CASEは変換された文字列を含むバッファ,レンジ,または文字列を戻すこともできます。
buffer
変更したい文字列を含むバッファ。第1パラメータにバッファを指定したときには,キーワード NOT_IN_PLACE は使えません。range
変更したい文字列を含むレンジ。第1パラメータにレンジを指定したときには,キーワード NOT_IN_PLACE は使えません。string
変換したい文字列。第3パラメータに IN_PLACE を指定したときには,第1パラメータに指定された文字列を変更します。文字列定数に対しては何も行いません。LOWER
指定した文字列のアルファベット(全角,半角)は小文字に変換されます。UPPER
指定した文字列のアルファベット(全角,半角)は大文字に変換されます。INVERT
指定した文字列のアルファベット(全角,半角)が大文字の場合には小文字に変換され,小文字の場合には大文字に変換されます。LATIN
指定した文字列の全角のLatin文字は半角のLatin文字に変換されます。WIDE_LATIN
指定した文字列の半角のLatin文字は全角のLatin文字に変換されます。SIZE_INVERT
指定した文字列の半角のLatin文字は全角に,全角のLatin文字は半角に変換されます。HIRAGANA
指定した文字列のカタカナ(全角)および半角カナはひらがなに変換されます。KATAKANA
指定した文字列のひらがなおよび半角カナはカタカナ(全角)に変換されます。KANA_INVERT
指定した文字列のひらがなはカタカナ(全角)に,カタカナ(全角)はひらがなに変換されます。NARROW_KANA
指定した文字列のひらがなおよびカタカナ(全角)は半角カナに変換されます。KANA
指定した文字列のアルファベット(半角,全角)はローマ字として扱われ,ひらがなに変換されます。また,文字列中のカタカナおよび半角カナはひらがなに変換されます。
returned_buffer 第1パラメータにバッファを指定したときに,変更されたテキストが含んだバッファが戻されるバッファ型の変数。変数 "returned_buffer" は第1パラメータで指定されたバッファと同じバッファを示します。 returned_range 第1パラメータにレンジを指定したときに,変更されたテキストを含んだレンジが戻されるレンジ型の変数。変数 "returned_range" は第1パラメータで指定されたレンジと同じレンジを示します。 returned_string 第1パラメータに文字列を指定したときに,変更されたテキストを含む文字列が戻される文字列型の変数。IN_PLACE を指定したときにも,文字列は戻されます。
表 4-1 は CHANGE_CASE の各キーワードとその変換項目です。
キーワード | ||||||||
---|---|---|---|---|---|---|---|---|
文字列 | LATIN | WIDE_ LATIN |
KANA | HIRA GANA |
KATA KANA |
KANA_ INVERT |
NARROW_ KANA | SIZE_ INVERT |
半角 | none | 全角 | ひら | none | none | none | none | 全角 |
全角 | 半角 | none | ひら | none | none | none | none | 半角 |
ひらがな | none | none | none | none | カタ | カタ | 半カ | none |
カタカナ | none | none | ひら | ひら | none | ひら | 半カ | none |
半角カナ | none | none | ひら | ひら | カタ | none | none | none |
none= 変換されない
ひら = ひらがな
カタ = カタカナ
半カ = 半角カナ
シグナル・エラー |
XTPU$_BADKEY WARNING 間違ったキーワードが指定された XTPU$_NOTMODIFIABLE WARNING 変更できないバッファの中のテキストを変更することはできない XTPU$_ARGMISMATCH ERROR 引数の型が正しくない XTPU$_CONTROLC ERROR CHANGE_CASE の実行中に [Ctrl/C] が押された XTPU$_INVPARAM ERROR パラメータのデータ・タイプが間違っている XTPU$_TOOFEW ERROR パラメータの数が少なすぎる XTPU$_TOOMANY ERROR パラメータの数が多すぎる
CHANGE_CODE |
この組込みプロシージャは,指定されたキーワードに従って,指定されたバッファまたはレンジ中のテキストのコードセットを変換します。
[{returned_buffer |returned_range} :=] CHANGE_CODE ({buffer | range }, keyword1, keyword2)
buffer
変更したい文字列を含むバッファ。range
変更したい文字列を含むレンジ。keyword1
変換前のコードセットを示すキーワード。有効なキーワードは,DEC_MCS, ISO_LATIN1,ASCII_JISKANA,DECKANJI,DECKANJI2000, SDECKANJI,SJIS,ISO2022JP,UCS2,および UTF8です。keyword2
変換後のコードセットを示すキーワード。有効なキーワードは,DEC_MCS, ISO_LATIN1,ASCII_JISKANA,DECKANJI,DECKANJI2000, SDECKANJI,SJIS,ISO2022JP,UCS2,および UTF8です。
returned_buffer 第1パラメータにバッファを指定したときに,変更されたテキストが含んだバッファが戻されるバッファ型の変数。変数 "returned_buffer" は第1パラメータで指定されたバッファと同じバッファを示します。 returned_range 第1パラメータにレンジを指定したときに,変更されたテキストを含んだレンジが戻されるレンジ型の変数。変数 "returned_range" は第1パラメータで指定されたレンジと同じレンジを示します。
この組込みプロシージャは,あるコードセットを指定してファイルから読み込んだバッファの内容のすべて,または一部を別のコードセットと解釈し直す場合に使用されます。たとえば,DEC漢字コードセットと思って読み込んだファイルが,実際は ISO Latin1 コードセットで書かれていた場合,この組込みプロシージャを使用すれば,もう一度 ISO Latin1 コードセットを指定してファイルから読み直すことなしに,バッファ中のコードセットの解釈のみを ISO Latin1 コードセットに変えることができます。これによって正しい文字が画面に表示されることになります。
シグナル・エラー |
XTPU$_BADKEY WARNING 間違ったキーワードが指定された XTPU$_NOTMODIFIABLE WARNING 変更できないバッファの中のテキストを変更することはできない XTPU$_CONTROLC ERROR CHANGE_CODE の実行中に [Ctrl/C] が押された XTPU$_INVPARAM ERROR パラメータのデータ・タイプが間違っている XTPU$_TOOFEW ERROR パラメータの数が少なすぎる XTPU$_TOOMANY ERROR パラメータの数が多すぎる
目次 | 索引 |
|