前へ | 次へ | 目次 | 索引 |
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 | 出力結果の切り捨てが行われた |
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 バイトのコード変換テーブルです。
図 6-2 JSY$GTBL_TO_ASCII_K テーブル
図 6-6 JSY$GTBL_TO_MSDOS_K テーブル
図 6-8 JSY$GTBL_EBCDIK_TO_ASCII テーブル
6.4 DEC 漢字コード変換ライブラリ・ルーチン
DEC 漢字コード変換ライブラリ・ルーチンは,DEC 漢字セット中の漢字コードを,同じ DEC 漢字セット中の他の漢字コードに変換するためのルーチン群です。
変換指定ファイルを読み込みます。 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() エラー |
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 | ルーチンの呼び出し順序エラー |
変換指定テーブルの変換指定行および通知指定行で指定された漢字コードがあるかどうかを検査して通知します。コード変換は行いません。
<形式>
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() エラー |
変換指定テーブルの変換指定行にしたがって,漢字コード変換を行います。
<形式>
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() エラー |
前へ | 次へ | 目次 | 索引 |