日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 章:DEC XTPU の概要
第 2 章:DEC XTPU のデータ・タイプ
第 3 章:DEC XTPU 言語のレキシカル要素
第 4 章:DEC XTPU 組込みプロシージャ
第 5 章:DEC XTPU の起動
第 6 章:呼び出し可能なDEC XTPU
付録 A :DEC XTPUにおける端末装置のサポートと制限事項
付録 B :DEC XTPU メッセージ
索引
PDF
OpenVMS ホーム
日本語 HP OpenVMS

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


目次 索引




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

形式

[integer :=] ALIGN_CURSOR


引数



なし


戻り値

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



シグナル・エラー

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




この組込みプロシージャは,整数を 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 という変数に代入します。




この組込みプロシージャは,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 がメッセージ領域に表示されます。




この組込みプロシージャは,指定されたキーワードに従って,指定されたバッファ,レンジ,または文字列中のテキストの,大文字/小文字変換,ひらがな/カタカナ/半角カナ変換,全角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 の各キーワードとその変換項目です。

表 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 パラメータの数が多すぎる




この組込みプロシージャは,指定されたキーワードに従って,指定されたバッファまたはレンジ中のテキストのコードセットを変換します。

形式

[{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 パラメータの数が多すぎる


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.