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


前へ 次へ 目次 索引



DEC_KANJI

この組込みプロシージャは,文字と文字コード(ASCII コードあるいは DEC 漢字コード) の相互変換をします。

形式

{integer2|string2} := DEC_KANJI ({integer1|string1})


引数

integer1

ASCII 文字あるいは漢字に変換したい整数。 ASCII あるいは DEC 漢字セットで決められた整数(10 進数)。

string1

ASCII コードあるいは DEC 漢字コードを得たい文字。

説明

整数パラメータが与えられたときには,このプロシージャは指定された数字に従って,文字を通知します。数字と文字の対応は,ASCII および DEC 漢字セット規定によって決められています。文字が定義されていない値が指定されたときには,値が0の文字を戻します。

文字列パラメータが与えられたときには,このプロシージャは最初の文字に対応する ASCII コードあるいは DEC 漢字コードを戻します。


シグナル・エラー

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


次のサンプル・プロシージャは,JIS 漢字セットの任意の1区のテーブルをバッファに挿入します。たとえば,user_kanji_list (20) を実行すると,第 20 区のテーブルを現在のカーソルの位置に挿入します。


PROCEDURE user_kanji_list (jis_ku) 
LOCAL cnt, col, low_byte; 
 
cnt := jis_ku * 256 + 41120; 
max := cut + 94; 
 
COPY_TEXT (FAO('第 !ZL 区', jis_ku)); 
SPLIT_LINE; 
COPY_TEXT ("0 1 2 3 4 5 6 7 8 9 A B C D E F"); 
SPLIT_LINE; 
 
COPY_TEXT (user_hex(cnt) + ' '); 
col := 1; 
LOOP 
   EXITIF cnt 〉max; 
   IF col 〉16 THEN 
      SPLIT_LINE; 
      UPDATE (current_window); 
      col := 1; 
      COPY_TEXT (user_hex(cnt) + ' '); 
   ENDIF; 
   low_byte := cnt-((cnt / 256)*256); 
   IF low_byte〈〉160 THEN 
      COPY_TEXT (' '+ DEC_KANJI(cnt)); 
   ELSE 
      COPY_TEXT ('  '); 
   ENDIF; 
   cnt := cnt + 1; 
   col := col + 1; 
ENDLOOP; 
SPLIT_LINE; 
 
ENDPROCEDURE; 
 
PROCEDURE user_hex (dec_num) 
LOCAL res, rmn, temp; 
 
temp := dec_num; 
IF temp =0 THEN 
   res := '0' 
ELSE 
   res := '' 
ENDIF; 
LOOP 
   EXITIF temp 〈= 0; 
   rmn := temp-((temp / 16) * 16); 
   temp := temp / 16; 
   IF (0〈 rmn) AND (rmn〈 16) THEN 
      res := SUBSTR ('123456789ABCDEF', rmn, 1) + res; 
   ELSE 
      res := '0' + res; 
   ENDIF; 
ENDLOOP; 
user_hex := res; 
 
ENDPROCEDURE; 


DELETE_TANGO

この組込みプロシージャは,単語とその読みを個人辞書から削除します。

形式

DELETE_TANGO (string1, string2)


引数

string1

辞書から削除される単語の読みを表わすひらがな文字列。

string2

辞書から読みを削除される単語。

説明

この組込みプロシージャは,個人辞書から単語の読みを削除します。これは日本語 OpenVMS かな漢字変換ライブラリを使用しています。単語とその読みは,個人辞書に登録されているものでなければなりません。

『日本語ライブラリ 利用者の手引き』 "かな漢字変換ライブラリ" の JLB$DEL_TANGO を参照してください。


シグナル・エラー

XTPU$_NODIC WARNING この編集セッションでは個人辞書は使用していない
XTPU$_NODICENT WARNING 個人辞書に指定された単語が見つからない
XTPU$_DICUPDERR ERROR 個人辞書の変更時にエラーが発生した
XTPU$_INVPARAM ERROR 引数のデータ・タイプが正しくない
XTPU$_NORETURNVALUE ERROR DELETE_TANGO は値を返さない
XTPU$_TOOFEW ERROR 引数の数が少なすぎる
XTPU$_TOOMANY ERROR 引数の数が多すぎる



1. DELETE_TANGO ("じゅうしょ", "東京都あきる野市") 

このステートメントは,個人辞書に登録されている単語 "東京都あきる野市" と,その読み "じゅうしょ" を個人辞書から削除します。

次のサンプル・プロシージャは,選択された単語を個人辞書から削除します。読みがなを引数としてとり,引数が空文字であると,その読みをローマ字で入力するように要求します。単語が選択されていない場合や削除に失敗した(単語とその読みが正しくない)ときにはエラー・メッセージが表示されます。このプロシージャで用いている user_select_position は,選択開始位置を示すグローバル変数です。


! This procedure specifies start position of selection 
PROCEDURE user_select 
 
ON_ERROR 
    IF error = XTPU$_ONESELECT THEN 
        MESSAGE ("すでに選択されています。"); 
        RETURN; 
    ENDIF; 
ENDON_ERROR; 
 
user_select_position := SELECT (reverse); 
 
ENDPOROCEDURE 
 
! This procedure removes selected TANGO and its YOMIGANA 
! from personal dictionary. 
PROCEDURE user_delete_tango (yomi) 
 
LOCAL yomigana, tango_range, tango; 
 
ON_ERROR 
   IF (error = XTPU$_NOSELECT) OR (error = XTPU$_SELRANGEZERO) THEN 
       MESSAGE ("単語が選択されていません。"); 
   ELSE 
       MESSAGE ("単語を削除できません。"); 
   ENDIF; 
   user_select_position := 0; 
   RETURN; 
ENDON_ERROR; 
 
tango_range := select_range; 
user_select_position := 0;  ! This global variable is used to 
                            ! specify start position of selection 
POSITION (BEGINNING_OF(tango_range)); 
tango := SUBSTR (tango_range, 1, LENGTH(tango_range)); 
tango_range := 0; 
yomigana := yomi; 
IF yomigana = ''THEN 
   yomigana := READ_LINE ("読みがなをローマ字で入力してください:");
ENDIF; 
CHANGE_CASE (yomigana, KANA); 
 
DELETE_TANGO (yomigana, tango); 
 
ENDPROCEDURE; 


ENTER_TANGO

この組込みプロシージャは,単語とその読みを個人辞書に登録します。

形式

ENTER_TANGO (string1, string2)


引数

string1

個人辞書に登録する単語の読みを表わすかな文字列。

string2

個人辞書に登録する単語。

説明

このプロシージャは,個人辞書に新しい単語とその読みを登録します。これは日本語 OpenVMS かな漢字変換ライブラリを使用しています。単語とその読みは,個人辞書に登録されているものであってはなりません。

『日本語ライブラリ 利用者の手引き』の "かな漢字変換ライブラリ"の JLB$ENT_TANGO を参照してください。


シグナル・エラー

XTPU$_NODIC WARNING この編集セッションでは個人辞書は使用していない
XTPU$_DICUPDERR ERROR 個人辞書の変更時にエラーが発生した
XTPU$_INVPARAM ERROR 引数のデータ・タイプが正しくない
XTPU$_NORETURNVALUE ERROR ENTER_TANGO は値を返さない
XTPU$_TOOFEW ERROR 引数の数が少なすぎる
XTPU$_TOOMANY ERROR 引数の数が多すぎる



1. ENTER_TANGO ("じゅうしょ", "東京都あきる野市") 

このステートメントは,個人辞書に単語 "東京都あきる野市" と,その読み"じゅうしょ" を新しく登録します。

次のサンプル・プロシージャは,選択された単語を個人辞書に登録します。読みがなを引数としてとり,引数が空文字であると,その読みをローマ字で入力するように要求します。単語が選択されていないときや登録に失敗した(単語とその読みが正しくない)ときにはエラー・メッセージを表示します。このプロシージャで用いている user_select_position は,選択開始位置を示すグローバル変数です。


PROCEDURE user_select 
 
! This procedure specifies start position of selection 
 
ON_ERROR 
    IF error = XTPU$_ONESELECT THEN 
        MESSAGE ("すでに選択されています。"); 
        RETURN; 
    ENDIF; 
ENDON_ERROR; 
 
user_select_position := SELECT (REVERSE); 
 
ENDPROCEDURE; 
            
 
! This procedure reserves selected TANGO and its YOMIGANA 
! in personal dictionary. 
PROCEDURE user_enter_tango (yomi) 
 
LOCAL yomigana, tango_range, tango; 
 
ON_ERROR 
    IF (error = XTPU$_NOSELECT) OR (error = XTPU$_SELRANGEZERO) THEN 
        MESSAGE ("単語が選択されていません。"); 
    ELSE 
        MESSAGE ("単語を登録できません。"); 
    ENDIF; 
    user_select_position := 0; 
    RETURN; 
ENDON_ERROR; 
 
tango_range := select_range; 
user_select_position := 0;  ! This global variable is used to 
                            ! specify start position of selection 
POSITION (BEGINNING_OF(tango_range)); 
tango := SUBSTR (tango_range, 1, LENGTH(tango_range)); 
tango_range := 0; 
yomigana := yomi; 
IF yomigana = '' THEN 
   yomigana := READ_LINE ("読みがなをローマ字で入力してください:");
ENDIF; 
CHANGE_CASE (yomigana, KANA); 
 
ENTER_TANGO (yomigana, tango); 
 
ENDPROCEDURE; 


FAO

この組込みプロシージャは,制御文字列をフォーマッティングされた ASCII 出力文字列に変換するために,Formatted ASCII OUTPUT ($FAO) システム・サービスをコールします。FAO ディレクティブに対する引数を制御文字列として指定することにより,$FAO システム・サービスによって実行される処理を制御することができます。FAO 組込みプロシージャはフォーマッティングされた ASCII 出力を含む文字列を通知します。

FAOには最大127個までのパラメータを指定することができます。

FAOは,指定された文字列をメッセージ・コードセットに指定されたコードセットに変換して,$FAO システム・サービスを呼び出します。このため,そのときのメッセージ・コードセットで表現できない文字は,FAO を呼び出した結果,失われます。メッセージ・コードセットについて詳しくは,SET (MESSAGE_CODESET)組込みプロシージャを参照してください。

$FAO システム・サービスについての詳しい説明は,『OpenVMS System Services Reference Manual』を参照してください。


形式

string2 := FAO (string1 [,FAO parameters])


引数

string1

引用符で囲まれた文字列,文字列定数を含む変数名,または文字列を表わす式であり,固定長テキストの出力文字列と FAO ディレクティブから構成されます。

文字列の一部として指定することができる FAO ディレクティブは下記のとおりです。

!AS 文字列を入力されたとおりに挿入する
!OL 倍長語(ロングワード)を8進数に変換する
!XL 倍長語(ロングワード)を16進数に変換する
!ZL 倍長語(ロングワード)を10進数に変換する
!UL 倍長語(ロングワード)を10進数に変換するが,負の数値に対する調整は実行しない
!SL 倍長語(ロングワード)を10進数に変換し,負の数値も正しく変換する
!/ 新しい行を挿入する(キャリッジ・リターン/ライン・フィード)
!_ タブを挿入する
!^ フォーム・フィードを挿入する
!! 感嘆符を挿入する
!%S 最後に変換された数値が1でない場合には S を挿入する
!%T パラメータとして0を入力した場合には,現在の時刻を挿入する(DEC XTPU は 4 倍長語を使用しないため,特定の時刻を渡すことはできない)
!%D パラメータとして0を入力した場合には,現在の日付と時刻を挿入する(DEC XTPU は 4 倍長語を使用しないため特定の日付を渡すことはできない)

FAO パラメータについては『OpenVMS System Services Reference Manual』を参照してください。一般的には,FAO パラメータは string1 の FAO ディレクティブに対応しています。


説明

FAO 組込みプロシージャについての説明は,『Guide to the DEC Text Processing Utility』を参照してください。

FAO 組込みプロシージャの引数に指定される文字列は,メッセージ・コードセットに指定される文字列でなければなりません。メッセージ・コードセットについての詳しい説明は,SET (MESSAGE_CODESET) を参照してください。


シグナル・エラー

XTPU$_INVFAOPARAM WARNING 引数が整数または文字列でない
XTPU$_INVPARAM ERROR FAO の第1引数は文字列でなければならない
XTPU$_NEEDTOASSIGN ERROR FAO 組込みプロシージャは代入文の右辺でのみ使用できる
XTPU$_TOOFEW ERROR 引数の数が少なすぎる


FILL

この組込みプロシージャは,指定されたバッファまたはレンジに含まれるテキストのフォーマットを変更することにより,テキスト・ラインをほぼ同じ長さにそろえます。

形式

FILL ({buffer|range}, [string [,integer1 [,integer2 [,integer3]]]])


引数

buffer

形式を変更したいテキストを含むバッファ。

range

形式を変更したいテキストを含むレンジ。

string

テキストをバッファに挿入するときにワード区切り文字として使用したい文字の集合。半角の空白文字は常にワード区切り文字です。

integer1

左マージンの値。左マージンの値は1以上で,右マージンの値より小さくなければなりません。省略時にはバッファの左マージンが使われます。

integer2

右マージンの値。右マージンの値は左マージンよリ大きく,バッファの最大レコード・サイズ以下でなければなりません。省略時にはバッファの右マージンが使われます。

integer3

最初の行の段付けの値。この値は最初の行の左マージンを変更します。値は正負共に有効ですが,この値を左マージンに足した結果が1以上で,かつ右マージンよリ小さくなければなりません。省略時には0が使われます。

説明

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

DEC XTPU では FILL 組込みプロシージャが2カラム以上の文字(複数カラム文字)を扱うことができます。複数カラム文字が含まれているときには,1カラム文字のワード区切り文字に加えて,2つの複数カラム文字の間もワード区切りとして扱われます。すなわち, 2つの複数カラム文字の間で行が分割されることがあります。

DEC XTPU の FILL 組込みプロシージャでは,日本語の禁則処理をすることができます。行頭禁則文字の指定には,SET (FILL_NOT_BEGIN) を,行末禁則文字の指定には,SET (FILL_NOT_END) を使います。また,SET (MARGIN_ALLOWANCE) で,右マージンの右側に置くことのできる行頭禁則文字の文字数を指定することができます。

Latin文字からなる文章にFILLを実行したときに行末に空白文字がくると,その空白文字は削除されます。また,FILLの結果複数行がつながると,その間に空白文字が置かれます。しかし複数カラム文字が含まれているときには,この機能が不要になることがあります。そのようなときには,SET (FILL_TRIM_SPACE) でFILLを実行するときに,空白文字の削除および追加を行うかどうかを制御できます。


シグナル・エラー

XTPU$_BADMARGINS WARNING 正しくない FILL のマージンが指定された
XTPU$_INVRANGE WARNING 正しくないレンジ領域が指定された
XTPU$_NOTMODIFIABLE WARNING 変更が禁止されているバッファで FILL を実行することはできない
XTPU$_ARGMISMATCH ERROR パラメータのデータ・タイプが正しくない
XTPU$_CONTROLC ERROR FILL の実行中に [Ctrl/C] が押された
XTPU$_INVPARAM ERROR パラメータのデータ・タイプが正しくない
XTPU$_NOCACHE ERROR 割り当てられたメモリの不足で新しい行が作れない
XTPU$_TOOFEW ERROR パラメータの数が少なすぎる
XTPU$_TOOMANY ERROR パラメータの数が多すぎる


GET_INFO

この組込みプロシージャは,編集コンテキストの現在のステータスに関する情報を通知します。GET_INFO が通知する情報のリストのうち,DEC XTPU で拡張されたものが 表 4-2表 4-3 にまとめられているので参照してください。

形式

return_value := GET_INFO (parameter1, parameter2)


形式

return_value := GET_INFO (parameter1, parameter2, parameter3)


引数

parameter1

DEC XTPU のデータ・タイプまたはキーワード。GET_INFO は, parameter1 として指定されたアイテムに関する情報を通知します。 parameter1 として指定できるデータ・タイプのうちDEC XTPU で拡張されたものについては, 表 4-2 を参照してください。また, parameter1 として指定できるキーワードのうちDEC XTPU で拡張されてものについては, 表 4-3 を参照してください。

parameter2

引用符で囲まれた文字列,変数名,または 表 4-2 または 表 4-3 の文字列定数を表わす式。parameter2 として使用される文字列は, parameter1 で指定されたアイテムに関して要求される情報の種類を指定します。文字列は大文字で入力しても小文字で入力してもかまいません。

parameter3

引用符で囲まれた文字列,変数名。

parameter1 が SCREEN で paramerter2 が "video_character_set" という文字列のときは, parameter3 には文字セットを示すキーワードを与えます。有効なキーワードは DEC_SUPPLEMENTAL,LATIN1_SUPPLEMENTAL, JIS_ROMAN,JIS_KATAKANA,KANJI_1,または KANJI_UDC です。


説明

要求される情報の種類に応じて,GET_INFO は以下のいずれかを通知します。

表 4-2 GET_INFO - parameter1 として変数を使用する場合
parameter1 parameter2 戻り値 戻り値の説明
バッファ変数 "character_index" 整数 現在の編集位置の文字境界からのカラム・オフセット
  "character_length" 整数 現在の編集位置の文字のカラム長
  "codeset" キーワード バッファのコードセットを示すキーワード
  "output_codeset" キーワード バッファの出力コードセットを示すキーワード
マーカ変数 "character_index" 整数 マーカの文字境界からのカラム・オフセット
  "character_length" 整数 マーカのある文字のカラム長

表 4-3 GET_INFO - parameter1 としてキーワードを使用する場合
parameter1 parameter2 戻り値 戻り値の説明
COMMAND_LINE "codeset" キーワード /CODESET= に指定したコードセット名
  "kanji_dictionary" 1整数
(1か0)
/KANJI_DICTIONARY がアクティブであるかどうかを示す値(省略時の値によって,または DEC XTPU を呼び出すときに/KANJI_DICTIONARY を指定することによって)
  "kanji_dictionary_file" 文字列 /KANJI_DICTIONARY= に指定した個人辞書ファイル名
SCREEN "video_character_set" 1整数
(1か0)
第 3パラメータで指定した文字セットを画面に表示できるかどうかを示す値
SYSTEM "codeset" キーワード システム・コードセットを示すキーワード
  "fill_not_begin" 文字列 行頭禁則文字からなる文字列
  "fill_not_end" 文字列 行末禁則文字からなる文字列
  "fill_trim_space" 1整数
(1か0)
FILL組込みプロシージャで分割された行の最後の空白文字を取り除くかどうかを示す値
  "jis_roman" 1整数
(1か0)
JISローマ字文字セットがASCII文字セットに代わって使われるかどうかを示す値
  "kanji_dictionary_file" 文字列 DEC XTPU が呼びだされたときに使用された個人辞書ファイル名
  "keyboard_codeset" キーワード キーボード・コードセットを示すキーワード
  "margin_allowance" 整数 右マージンを越えて置くことができる行頭禁則文字の数
  "message_codeset" キーワード メッセージ・コードセットを示すキーワード


11という整数値は条件が真であることを示し,0 という整数値は偽であることを示す。

シグナル・エラー

XTPU$_BADREQUEST WARNING 2番目の引数によって指定される要求が最初の引数のデータ・タイプに対して正しくないものである
XTPU$_BADKEY WARNING 最初の引数として誤ったキーワード値,または認識されないデータ・タイプが渡されていた
XTPU$_NOBREAKPOINT WARNING 文字列定数が使用できるのはブレーク・ポイントの後のみである
XTPU$_NOCRRENTBUF WARNING 現在のバッファが定義されていない
XTPU$_NOKEYMAP WARNING キー・マップが定義されていない
XTPU$_NOKEYMAPLIST WARNING キー・マップ・リストが定義されていない
XTPU$_NONAMES WARNING 要求された名前にマッチするものがない
XTPU$_INVPARAM ERROR 引数のデータ・タイプに誤りがある
XTPU$_NEEDTOASSIGN ERROR GET_INFO 組込みプロシージャは代入文の右辺でのみ使用できる
XTPU$_TOOFEW ERROR 引数の数が少なすぎる
XTPU$_TOOMANY ERROR 引数の数が多すぎる
XTPU$_UNKEYWORD ERROR 引数に誤ったキーワードが使われた



1. my_dictionary := GET_INFO (SYSTEM, "kanji_dictionary_file"); 

この代入ステートメントは,現在使用中の個人辞書の名前を my_dictionary という変数に代入します。


2. current_codeset := GET_INFO (CURRENT_BUFFER, "codeset"); 

この代入ステートメントは,現在のバッファのコードセットを current_codeset という変数に代入します。


前へ 次へ 目次 索引