# 日本語 Compaq OpenVMS
日本語ライブラリ 利用者の手引き

前へ | 次へ | 目次 | 索引

JLB$TRA_KANJI_DEC_CPM

> DEC コード→ CP/M コード

> - DEC の漢字文字列を CP/M の漢字文字列に変換します。

> - DEC の JIS 第 1 〜 94 区以外の漢字コードは %X'81A0' ('□') に変換します。

> - DEC の %X'A1A1' (space) は %X'2020' に変換します。

> - DEC 文字列に1バイト・コードが混在している場合には，省略時設定の1バイト変換テーブル JSY$GTBL_TO_MSDOS によって，変換して出力します。1バイト変換テーブルが指定されているときには，そのテーブルによって変換して出力します(シフト・コードは付加しません)。

＜形式＞

> status.wlc.v = JLB$TRA_KANJI_DEC_CPM ( dst-str.wt.dx, src-str.rt.dx
> [,[out-len.wwu.r] [,[trans-tbl.rt.r]]])

＜引数＞

dst-str
JLB usage | 出力文字列
type | 文字列データ
access | 出力のみ
mechanism | Descriptor 渡し
src-str
JLB usage | 入力文字列
type | 文字列データ
access | 入力のみ
mechanism | Descriptor 渡し
out-len
JLB usage | 出力文字列のバイト長
type | Word(unsigned)
access | 出力のみ
mechanism | Reference 渡し
trans-tbl
JLB usage | 256 バイトの1バイト・コード変換テーブル
type | テーブル
access | 入力のみ
mechanism | Reference 渡し

＜戻り値＞

status | SS$_NORMAL | 正常終了
| LIB$_STRTRU | 出力結果の切り捨てが行われた

JLB$TRA_KANJI_CPM_DEC

> CP/M コード→ DEC コード

> - CP/M の漢字文字列を DEC の漢字文字列に変換します。

> - CP/M の JIS 第 1 〜 94 区以外の漢字コードは %X'A2A2' ('□') に変換します。

> - CP/M の文字列に1バイト・コードが混在している場合には，省略時設定の1バイト変換テーブル JSY$GTBL_TO_MSDOS によって，変換して出力します。1バイト変換テーブルが指定されているときには，そのテーブルによって変換して出力します。

＜形式＞

> status.wlc.v = JLB$TRA_KANJI_CPM_DEC ( dst-str.wt.dx, src-str.rt.dx
> [,[out-len.wwu.r] [,[trans-tbl.rt.r]]])

＜引数＞

dst-str
JLB usage | 出力文字列
type | 文字列データ
access | 出力のみ
mechanism | Descriptor 渡し
src-str
JLB usage | 入力文字列
type | 文字列データ
access | 入力のみ
mechptor | Descriptor 渡し
out-len
JLB usage | 出力文字列のバイト長
type | Word(unsigned)
access | 出力のみ
mechanism | Reference 渡し
trans-tbl
JLB usage | 256 バイトの1バイト・コード変換テーブル
type | テーブル
access | 入力のみ
mechanism | Reference 渡し

＜戻り値＞

status | SS$_NORMAL | 正常終了
| LIB$_STRTRU | 出力結果の切り捨てが行われた

# 6.3 1 バイト・コード変換テーブル

1 バイト・コード変換テーブルは，1 バイト・コードを変換する際に使用する 256 バイトのコード変換テーブルです。

JSY$GTBL_TO_ASCII

- ASCII コードに変換します。

- ただし，カタカナ・コードは '￥' (%X'5C') に置換します。

図 6-1 JSY$GTBL_TO_ASCII テーブル

JSY$GTBL_TO_ASCII_K

- ASCII コードに変換します。

図 6-2 JSY$GTBL_TO_ASCII_K テーブル

JSY$GTBL_TO_NEC

- NEC コードに変換します。

- ただし，カタカナ・コードは '￥' (%X'5C') に置換します。

- %X'60'，%X'7B'〜%X'7E' ( `{|}~ ) は '￥' (%X'5C') に置換します。

- 英小文字は大文字に変換します。

- %X'80'〜%X'A0' の制御コードは '￥' (%X'5C') に置換します。

図 6-3 JSY$GTBL_TO_NEC テーブル

JSY$GTBL_TO_NEC_K

- NEC コードに変換します。

- %X'60'，%X'7B'〜%X'7E' ( `{|}~ ) は '￥' (%X'5C') に置換します。

- 英小文字は大文字に変換します。

- %X'80'〜%X'A0' の制御コードは '￥' (%X'5C') に置換します。

- 未定義カタカナ・コードは '￥' (%X'5C') に置換します。

図 6-4 JSY$GTBL_TO_NEC_K テーブル

JSY$GTBL_TO_MSDOS

- MSDOS コードに変換します。

- ただし，カタカナ・コードは '￥' (%X'5C') に置換します。

- %X'80'〜%X'A0' の制御コードは '￥' (%X'5C') に置換します。

図 6-5 JSY$GTBL_TO_MSDOS テーブル

JSY$GTBL_TO_MSDOS_K

- MSDOS コードに変換します。

- %X'80'〜%X'A0' の制御コードは '￥' (%X'5C') に置換します。

- 未定義カタカナ・コードは '￥' (%X'5C') に置換します。

図 6-6 JSY$GTBL_TO_MSDOS_K テーブル

JSY$GTBL_TO_EBCDIK

- EBCDIK コードに変換します。

- ただし，カタカナ・コードは '<SUB>' (EBCDIC: %X'3F') に置換します。

- 英小文字は大文字に変換します。

- %X'80'〜%X'A0' の制御コードは '<SUB>' (EBCDIC: %X'3F') に置換します。

図 6-7 JSY$GTBL_TO_EBCDIK テーブル

JSY$GTBL_EBCDIK_TO_ASCII

- EBCDIK コードを ASCII コードに変換します。

- ただし，カタカナ・コードは '<SUB>' (EBCDIC: %X'3F') に置換します。

図 6-8 JSY$GTBL_EBCDIK_TO_ASCII テーブル

# 6.4 DEC 漢字コード変換ライブラリ・ルーチン

DEC 漢字コード変換ライブラリ・ルーチンは，DEC 漢字セット中の漢字コードを，同じ DEC 漢字セット中の他の漢字コードに変換するためのルーチン群です。

JLB$KCV_BEGIN_CONV

> 変換指定ファイルを読み込みます。 JLB$KCV_FIND，JLB$KCV_CONVERT に先立ってコールしなければなりません。複数の変換指定ファイルを同時に使用する場合には ident の値を変えてください。

＜形式＞

> ret-status.wlc.v = JLB$KCV_BEGIN_CONV ( file-spec.rt.dx
> [,err_type.wl.r [,err_line_no.wl.r [,ident.rl.r]]])

＜引数＞

file-spec
JLB usage | 変換指定テーブルのファイル名
mechanism | Descriptor 渡し
err_type
JLB usage | 戻り値が JSY$_INVFORMAT のときにエラーの種類をセットします。
| 1 : フォーマット・エラー
| 2 : 変換ファイルに重複したコードがある。
| 3 : 変換ファイルのデータが 65,536 以上ある (重複したコードを指定しない限りありえない)。
mechanism | Reference 渡し
err_line_no
JLB usage | 戻り値が JSY$_INVFORMAT のときにエラーのあるライン番号をセットします。
mechanism | Reference 渡し
ident
JLB usage | 変換指定ファイルを一意にするための番号を指定します。
| 省略時には 0 とします。
mechanism | Reference 渡し

＜戻り値＞

ret-status | SS$_NORMAL | 正常終了
| JSY$_INVARG | 引数エラー
| JSY$_INVCALL | ルーチンの呼び出し順序エラー
| JSY$_INVFORMAT | 変換指定ファイルにエラー
| RMS$_... | RMS エラー
| LIB$_... | LIB$GET_VM() エラー
|  | LIB$FREE_VM() エラー

JLB$KCV_END_CONV

> ident で指定された番号の変換指定ファイルによる漢字コード変換を終了します。

＜形式＞

> ret-status.wlc.v = JLB$KCV_END_CONV ( [ident.rl.r] )

＜引数＞

ident
JLB usage | JLB$KCV_BEGIN_CONV で指定した番号を指定します。
| 省略時には 0 とします。
mechanism | Reference 渡し

＜戻り値＞

ret-status | SS$_NORMAL | 正常終了
| JSY$_INVARG | 引数エラー
| JSY$_INVCALL | ルーチンの呼び出し順序エラー

JLB$KCV_FIND

> 変換指定テーブルの変換指定行および通知指定行で指定された漢字コードがあるかどうかを検査して通知します。コード変換は行いません。

＜形式＞

> ret-status.wlc.v = JLB$KCV_FIND ( src-str.rt.dx, index.wl.r, match-len.wl.r
> [,com-type.wl.r [,mode.rwl.r [,rep-str.wt.dx [,rep-len.wl.r [,ident.rl.r]]]]])

＜引数＞

src-str
JLB usage | 入力文字列
mechanism | Descriptor 渡し
index
JLB usage | 一致した文字列の始まる位置を入力文字列の先頭からのオフセットをセットします。一致する文字列がなければ入力文字列の長さをセットします。
mechanism | Reference 渡し
match-len
JLB usage | 一致した文字列の長さをセットします。
mechanism | Reference 渡し
com-type
JLB usage | 一致した文字列が変換指定であるか通知指定であるかをセットします。
| 1 : 通知指定
| 2 : 変換指定
mechanism | Reference 渡し
mode
JLB usage | 指定されたモードで検索を開始します。
| 0 : 漢字
| 1 : 半角カタカナ
| 省略時は漢字モード
mechanism | Reference 渡し
rep-str
JLB usage | 一致した文字列が変換指定のときに，変換指定ファイルの変換後文字列をセットします。
mechanism | Descriptor 渡し
rep-len
JLB usage | 一致した文字列が変換指定のときに，変換指定ファイルの変換後文字列の長さをセットします。
mechanism | Reference 渡し
ident
JLB usage | JLB$KCV_BEGIN_CONV で指定した番号を指定します。
| 省略時には 0 とします。
mechanism | Reference 渡し

＜戻り値＞

ret-status | SS$_NORMAL | 正常終了
| JSY$_KEYNOTFND | 一致する文字列がなかった
| JSY$_INVARG | 引数エラー
| JSY$_INVCALL | ルーチンの呼び出し順序エラー
| LIB$_... | LIB$SCOPY_R_DX() エラー

JLB$KCV_CONVERT

> 変換指定テーブルの変換指定行にしたがって，漢字コード変換を行います。

＜形式＞

> ret-status.wlc.v = JLB$KCV_CONVERT ( dst-str.wt.dx, src-str.rt.dx
> [,mode.rwl.r [,out-len.wl.r [,ident.rl.r]]])

＜引数＞

dst-str
JLB usage | 出力文字列
mechanism | Descriptor 渡し
src-str
JLB usage | 入力文字列
mechanism | Descriptor 渡し
mode
JLB usage | 指定されたモードで検索・変換を開始します。
| 0 : 漢字
| 1 : 半角カタカナ
| 省略時は漢字モード。
mechanism | Reference 渡し
out-len
JLB usage | 変換結果のバイト長
mechanism | Reference 渡し
ident
JLB usage | JLB$KCV_BEGIN_CONV で指定した番号を指定します。
| 省略時には 0 とします。
mechanism | Reference 渡し

＜戻り値＞

ret-status | SS$_NORMAL | 正常終了
| JSY$_INVARG | 引数エラー
| JSY$_INVCALL | ルーチンの呼び出し順序エラー
| LIB$_... | LIB$SCOPY_R_DX() エラー
|  | LIB$GET_VM() エラー

前へ | 次へ | 目次 | 索引