日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
日本語 HP OpenVMS
|
目次 | 索引 |
CODE |
この組込みプロシージャは,UCS-2 (Universal Character Set (ISO 10646) の 2オクテット表現,いわゆるUnicode) と文字との相互変換を行います。またキーに対応する文字を得るためにも使用されます。
{integer3|string2} := CODE ({integer1|keyword|string1} [,integer2])
integer1
UCS-2での文字の10進数表現。0から65535までの値が有効です。それ以外の数字を渡したときの動作は定義されていません。keyword
対応する文字が必要なキーの名前。プリント可能な文字に対応しないキーのキー名を指定した場合には,CODEはUCS-2 の値が 0 である文字を戻します。string1
対応する UCS-2 の値が必要な文字。1文字より長い文字列を指定した場合には, CODE は最初の文字の値を戻します。integer2
文字のカラム幅を示す整数。このパラメータは第1パラメータに整数を指定したときのみ指定できます。省略時の値は1です。漢字など2カラム文字の UCS-2 コードから文字列への変換を行うときは,このパラメータに2を指定しなければなりません。
第1パラメータに整数が与えられたときには,このプロシージャは第2パラメータに指定された数字に従って,1カラムあるいは2カラムの文字を通知します。第1パラメータの数字と文字の対応は,UCS-2の規定によって決められています。変換されたコードに対応する文字が表示できるかどうかはチェックされません。文字列パラメータが与えられたときには,このプロシージャは最初の文字に対応する UCS-2コードを通知します。
シグナル・エラー |
XTPU$_NULISTRING WARNING 長さ0の文字列が渡された XTPU$_ARGMISMATCH ERROR 引数のデータ・タイプが正しくない XTPU$_NEEDTOASSIGN ERROR CODE は代入文の右辺でのみ使用できる XTPU$_TOOFEW ERROR 引数の数が少なすぎる XTPU$_TOOMANY ERROR 引数の数が多すぎる
COLUMN_LENGTH |
この組込みプロシージャは,文字列またはレンジに含まれる文字の,画面上のカラム数を示す整数を通知します。
integer := COLUMN_LENGTH ({buffer | range | string})
buffer
カラム長を知りたいバッファの名前。バッファを指定した場合,行の終端はカラム数としてカウントされないので注意してください。range
カラム長を知りたいレンジの名前。レンジを指定した場合,行の終端はカラム数としてカウントされないので注意してください。string
カラム長を知りたい文字列。
バッファ,レンジ,あるいは文字列の中にTAB文字が含まれていたときは,TAB文字のカラム数は表示されているカラム数に関わらず1カラムとして計算されます。
シグナル・エラー |
XTPU$_ARGMISMATCH ERROR COLUMN_LENGTH のパラメータは,バッファ,レンジ,文字列のいずれかでなければならない XTPU$_CONTROLC ERROR COLUMN_LENGTH の実行中に [Ctrl/C] が押された XTPU$_NEEDTOASSIGN ERROR COLUMN_LENGTH は代入文の右辺でのみ使用できる XTPU$_TOOFEW ERROR パラメータの数が少なすぎる XTPU$_TOOMANY ERROR パラメータの数が多すぎる
CONVERT_KANA |
この組込みプロシージャは,日本語 OpenVMS かな漢字変換ライブラリを使用して,ひらがなまたはカタカナの文字列を漢字に,また,ローマ字をひらがな/カタカナの表示に変換します。
[{strint2|integer2} :=] CONVERT_KANA (keyword [,{string1 | integer1}])
keyword
変換に関する各指示を指定するキーワードで,下記の中から1つを指定します。指定するキーワードによって,その他のパラメータや戻り値のデータ・タイプが異なります。
START_CONVERSION 新しい変換を開始し,変換文字列を返します FORWARD 現在の文節の次候補を含む変換文字列を返します REVERSE 現在の文節の前候補を含む変換文字列を返します NONE 現時点での変換文字列を返します END_CONVERSION 漢字辞書を更新します HIRAGANA 現在の文節をひらがなに変換し,変換文字列を返します KATAKANA 現在の文節をカタカナ(全角)に変換し,変換文字列を返します NARROW_KANA 現在の文節を半角カナに変換し,変換文字列を返します ROMAN 現在の文節を全角英数字に変換し,変換文字列を返します SHRINK 現在の文節の長さを縮小し,変換文字列を返します EXPAND 現在の文節の長さを拡大し,変換文字列を返します CLAUSE_OFFSET 現在の文節の漢字列中の文字オフセットを返します CLAUSE_LENGTH 現在の文節の文字長を返します PHONETIC_OFFSET 現在の文節の読み文字列中の文字オフセットを返します PHONETIC_LENGTH 現在の文節の読みの長さを返します CLAUSE_NEXT 次の文節に移動します CLAUSE_PREVIOUS 前の文節に移動します CLAUSE_NUMBER 現在の文節番号を設定します MAX_CLAUSE_NUMBER 現在の変換文字列の文節数を返します
string1
新しい変換を開始するときの読み文字列。かな漢字変換は全角かなの部分を対象とします。キーワードが START_CONVERSION の場合にのみ必要で,それ以外の場合に指定してはいけません。integer1
現在の文節を指定した番号の文節に設定します。キーワードが CLAUSE_NUMBER の場合のみに有効で,それ以外の場合に指定してはいけません。キーワードが CLAUSE_OFFSET の場合,現在の文節の変換文字列中での文字オフセットの値が整数値で返されます。CLAUSE_LENGTH の場合,現在の文節の変換後文字列に占める文字長が整数値で返されます。
キーワードが CLAUSE_OFFSET,CLAUSE_LENGTH の場合,変換された文字列を返します。この文字列は,現在の文節に対応する文字列ではなく,string1 で指定した読み文字列全体に対する変換文字列です。ただし,FORWARD,REVERSE, HIRAGANA などの変換操作の対象となるのは,文字列全体ではなく,現在の文節に対応する文字列です。
学習機能かなを漢字に変換する場合,いくつかの候補文字(同音異字語)が存在することがあります。このプロシージャは,START_CONVERSION のキーワードを指定すると辞書の第1候補を返し,FORWARD,REVERSE を指定するとそれぞれ次候補,前候補を返します。また,END_CONVERSION を指定するとその時点での候補の,次に同じ単語の変換(START_CONVERSION)を開始する時の優先順位が上がるので,よく使われる単語は再変換の回数が少なくてすむようになります。
変換機能
ASCII(半角) / ROMAN(全角)からひらがな,カタカナ,ローマ字へ,あるいはひらがな,カタカナから漢字への変換が可能です。
START_CONVERSION string1 で指定された読みの変換を開始します。このとき, string1 に対する文法解析を行い,変換文字列は1またはそれ以上の文節に分けられます。このとき,現在の文節は1番目の文節となります。 FORWARD 現在の文節の自立語の次候補を求め,新しい変換文字列を返します。 REVERSE 現在の文節の自立語の前候補を求め,新しい変換文字列を返します。 NONE 現時点での変換文字列をそのまま返します。 END_CONVERSION 変換文脈を終了し,変換文字列を確定するとともに,個人辞書の学習を行います。 HIRAGANA 現在の文節をひらがなに変換し,新しい変換文字列を返します。 ASCII,ROMAN,ひらがなおよびカタカナからなる部分が変換対象となります。 KATAKANA 現在の文節をカタカナ(全角)に変換し,新しい変換文字列を返します。1 回目に呼ばれた時は文節の自立語のみをカタカナに変換し,2 回目に呼ばれた時は文節全体をカタカナに変換します。START の時 string1 にはひらがなで渡されていなければなりません。 NARROW_KANA 現在の文節を半角カナに変換し,新しい変換文字列を返します。1 回目に呼ばれた時は文節の自立語のみを半角カナに変換し,2 回目に呼ばれた時は文節全体を半角カナに変換します。START の時 string1 にはひらがなで渡されていなければなりません。 ROMAN 現在の文節を全角英数字に変換し,新しい変換文字列を返します。ASCII からなる部分のみが変換対象となります。 SHRINK 現在の文節の長さを1文字分縮小し,文法解析を再び行って新しい変換文字列を返します。文法解析の結果,文節の長さが1以上縮小されることもあります。 EXPAND 現在の文節の長さを拡大し,文法解析をやりなおして新しい変換文字列を返します。
一般的に,文節の縮小/拡大を実行すると,現在の文節以降の文字列が変化し,それに伴って文節数も変化する可能性が高いので注意してください。
CLAUSE_OFFSET 現在の文節が,変換文字列の中のどの位置から始まるかを文字オフセットとして返します。文節移動を行った結果として値が変化します。 CLAUSE_LENGTH 現在の文節の長さを返します。変換操作を行った後は値が変化する可能性があります。 PHONETIC_OFFSET 現在の文節が,読み文字列の中のどの位置から始まるかを文字オフセットとして返します。文節移動を行った結果として値が変化します。 PHONETIC_LENGTH 現在の文節の読み文字列の長さを返します。変換操作を行った後は値が変化する可能性があります。 CLAUSE_NEXT 変換対象を次の文節に移動します。この結果,FORWARD, REVERSE などの対象となる部分が次の文節に移動します。 CLAUSE_PREVIOUS 変換対象を前の文節に移動します。現在の文節が先頭の文節である場合,最後の文節に移動します。この結果,FORWARD,REVERSE などの対象となる部分が次の文節に移動します。 CLAUSE_NUMBER パラメータ integer1 で指定した文節を現在の文節とします。 integer1 を指定しなかったときは,現在の文節の文節番号を返します。 MAX_CLAUSE_NUMBER 現在の変換文字列の文節数を返します。
シグナル・エラー |
XTPU$_ROUND INFORMATION FORWARD による次候補が一巡して最初の単語に戻った XTPU$_NEEDTOASSIGN ERROR 返される値を代入する変数が必要である XTPU$_NODIC WARNING この編集セッションでは辞書を使用していない XTPU$_BADVALUE ERROR 指定した整数値が有効な範囲内にない XTPU$_CNVERR ERROR かな漢字変換ルーチンの内部エラーが発生した XTPU$_DICUPDERR ERROR 個人辞書の更新時にエラーが発生した XTPU$_INVPARAM ERROR 引数の型が正しくない XTPU$_NOCLA ERROR 変換対象となる文節が指定されていない,変換を開始していない XTPU$_NODICENT WARNING 文節の縮小あるいは拡大ができない。単語が辞書にない(変換不可能) XTPU$_STRTOOLONG ERROR 入力文字数が 253 文字を越えた XTPU$_TOOFEW ERROR パラメータの数が少なすぎる XTPU$_TOOMANY ERROR パラメータの数が多すぎる XTPU$_TRUNCATE WARNING 変換文字列が長すぎるため,切り捨てが行われた
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;
目次 | 索引 |
|