# 日本語 Compaq OpenVMS
日本語ユーティリティ
利用者の手引き

前へ | 次へ | 目次 | 索引

# 6.4 使用例

この節では，漢字コード変換ユーティリティの使用例を示します。

1. DEC漢字コード体系のファイル IN.DAT 内のすべてのデータを JIS漢字コード体系に変換し，OUT.DAT に出力します。

2. DEC漢字コード体系のファイル IN.DAT 内の /FIELD で指定された領域内のデータを IBM漢字コード体系に変換し，OUT.DAT に出力します。指定領域外のデータは，変換せずにそのまま出力します。

3. NEC の DISK 媒体内部コード体系のファイル IN.DAT を DEC漢字コード体系に変換して，に出力します。

# 第 7 章
DEC 漢字コード変換ユーティリティ (KCONVERT)

この章では，DEC 漢字コード変換ユーティリティ (KCONVERT) について説明します。

# 7.1 機能概要

DEC 漢字セットとASCII 文字セットで記述された日本語文書内の特定の漢字コードを，変換指定テーブルにしたがって変換します。日本語 Compaq OpenVMS オペレーティング・システムでは DEC 漢字 1978 年版とDEC 漢字 1983 年版間の変換指定テーブルが提供されます。変換指定テーブルはエディタなどを用いて利用者が作成/ 変更することもできます。

漢字コード変換ユーティリティ(KCODE)は他社の漢字コード系との変換を行いますが，このDEC漢字コード変換ユーティリティ(KCONVERT) は，入力ファイルも出力ファイルも DEC 漢字コード系であることを前提にしています。

DCL コマンドですぐに利用できるユーティリティと，プログラムから呼びだすルーチンの 2種類があります。

# 7.2 KCONVERT コマンド

この節では，KCONVERT コマンドの形式，パラメータ，修飾子について説明します。

# KCONVERT

> DEC 漢字コード変換ユーティリティを起動します。

## 形式

> KCONVERT/TABLE = 変換テーブル・ファイル指定 [ /修飾子 ] 入力ファイル指定 [ 出力ファイル指定 ]

## パラメータ

> ### 入力ファイル指定

> 変換するファイル名を指定します。RMS が日本語モードの場合には，最大 118 文字までの日本語ファイル名を指定できます。ワイルドカードも指定できます。

> ### 出力ファイル指定

> 変換したファイルの出力先を指定します。RMS が日本語モードの場合には，最大 118 文字までの日本語ファイル名を指定できます。

> 省略時には，入力ファイルと同じ名前で，バージョンを更新したファイルに出力します。

## 修飾子

> ### /CHECK
> /NOCHECK (省略時設定)

> /TABLE で指定された変換テーブルに記述された漢字コードが入力ファイルにあるかどうかのみを検査し，その情報を /LOG_FILE で指定された出力先に出力します。漢字コード変換された出力ファイルは生成されません。 /NOCHECK が指定された場合は，実際の変換を行い，コード変換された出力ファイルが生成されます。

> ### /FIELD = (...)

> 1レコード内の変換・検査の範囲を指定します。 /FIELD 修飾子は 16 個まで記述できますが，各々の /FIELD 修飾子で指定する範囲が重なってはいけません。

> /FIELD 修飾子の指定がない場合は，1レコード全体が変換・検査の対象になります。以下の項目が指定できます。

> START: i | 変換・検査の開始位置をバイト・オフセットで指定します。レコードの先頭は1です。省略時設定値は1です。
> END: j | 変換・検査の終了位置をバイト・オフセットで指定します。 LENGTH と同時には指定できません。END も LENGTH も指定されていない場合は，レコードの最後まで変換・検査を行います。
> LENGTH:k | 変換・検査する範囲を START で指定した位置からのバイト数で指定します。END と同時には指定できません。END も LENGTH も指定されていな場合は，レコードの最後まで変換・検査を行います。
> KANJI | 半角カタカナ混じりの文章の場合，最初が漢字で始まっていることを指定します。
> KATAKANA | 半角カタカナ混じりの文章の場合，最初が半角カタカナで始まっていることを指定します。KANJI と KATAKANA のいずれの指定もない場合は， /MODE 修飾子で指定された文字で開始しているものとみなします。

> ### /INQUIRE
> /NOINQUIRE (省略時設定)

> 変換テーブルで指定された(変換指定の)漢字コードがあった際，変換するかどうかを問い合わせます。/CHECK と同時には指定できません。

> 省略時は問い合わせを行わず，指定のコードに変換します。

> ### /LOG_FILE = 出力先名
> /NOLOG_FILE

> 変換・検査の情報を指定の出力先に出力します。RMS が日本語モードの場合には，最大 118 文字までの日本語ファイル名を指定できます。省略時は SYS$OUTPUT に出力します。

> /NOLOG_FILE を指定した場合には，変換・検査の情報は出力されません。

> ### /MODE = 文字コード指定
> /MODE = KANJI (省略時設定)

> 文書が DEC 漢字コードと半角カタカナ混じりの場合，最初が漢字で始まっているか半角カタカナで始まっているかを指定します。以下の2つを指定できます。

> KANJI | 漢字で始まる
> KATAKANA | 半角カタカナで始まる

> KCONVERTユーティリティは，文書中にエスケープ・シーケンス (LS2R，LS3R) があると自動的に

>     LS2R (〈ESC〉} ).....この制御コード以後は半角カタカナとみなし，
>                           次に LS3R がみつかるまで変換・検査を行わない

>     LS3R (〈ESC〉| ).....この制御コード以後は漢字とみなし，変換・検査を行う

> 注意 〈ESC〉は 16 進数の 1B，‘ } ’は 7D，| は 7C です。

> として処理し，漢字の部分のみを変換・検査の対象にします。

> 1. 文書が LS3R なしの漢字コードで始まり，途中に半角カタカナが混じっている場合

>    この場合は漢字で始まっていますから /MODE 修飾子を省略できます。

>                   $ KCONVERT/TABLE=...  Input_file  Output_file

> 2. 文書が LS2R コードなしの半角カタカナで始まっている場合

>    この場合は半角カタカナで始まっていることを /MODE=KATAKANA で指定します。

>                    $ KCONVERT/MODE=KATAKANA/TABLE=...  Input_file  Output_file

> 3. 文書に LS2R または LS3R コードがある場合

>    または

>    この場合は /MODE=KANJI を指定しても /MODE=KATAKANA を指定しても，変換・検査の結果は同じですから，/MODE の指定は不要です。

>                   $ KCONVERT/TABLE=...  Input_file  Output_file

### /RANGE = (...)

入力ファイルの一部のレコードのみを変換・検査する場合に用います。 /RANGE 修飾子は 16 個まで記述できますが，各々の /RANGE 修飾子で指定するレコードの範囲が重なってはいけません。

/RANGE 修飾子の指定がないときは，すべてのレコードが変換・検査の対象になります。以下の項目が指定できます。

START:i | 変換・検査する開始レコード番号を指定します。最初のレコード番号は1です。省略時設定値は1です。
END:j | 変換・検査する終了レコード番号を指定します。LENGTH と同時には指定できません。END も LENGTH も指定されていないときは，最後のレコードまで変換・検査を行います。
LENGTH:k | 変換・検査するレコード数を指定します。END と同時には指定できません。END も LENGTH も指定されていないときは，最後のレコードまで変換・検査を行います。
KANJI | 半角カタカナ混じりの文章のとき，最初が漢字で始まっていることを指定します。
KATAKANA | 半角カタカナ混じりの文章のとき，最初が半角カタカナで始まっていることを指定します。KANJI と KATAKANA のいずれの指定も無いときは，/MODE 修飾子で指定された文字で開始しているものとみなします。

### /TABLE = 変換テーブル・ファイル指定

変換テーブルのファイル名を指定します。RMS が日本語モードの場合には，最大 118 文字までの日本語ファイル名を指定できます。変換・検査は，この変換テーブルにしたがって行われます。この修飾子と変換テーブルのファイル名は必ず指定しなければなりません。日本語 Compaq OpenVMS では DEC 漢字 1978 年版と 1983 年版の変換テーブル(JSY$SYSTEM:KCV78TO83.TABLE と JSY$SYSTEM:KCV83TO78.TABLE) を提供します。

1. DEC 漢字 1978 年版漢字コードを DEC 漢字 1983 年版 に変換する場合

               $ KCONVERT/TABLE=JSY$SYSTEM:KCV78TO83.TABLE  Input_file  Output_file

2. DEC 漢字 1983 年版漢字コードを DEC 漢字 1978 年版 に変換する場合

               $ KCONVERT/TABLE=JSY$SYSTEM:KCV83TO78.TABLE  Input_file  Output_file

3. 利用者が作成した変換テーブル (CONVERT.TABLE) にしたがって変換・検査を行う場合

               $ KCONVERT/TABLE=CONVERT.TABLE  Input_file  Output_file

   変換テーブルの形式については 第 7.3 節 を参照してください。

# 7.3 変換指定テーブル

変換・検査で使用する変換指定テーブルの形式を説明します。利用者定義による漢字コード変換を行う場合は，KCONVERT ユーティリティを使用する前に，変換テーブルを日本語エディタなどで作成します。

      ! KCONVERT 変換指定テーブルの例
      !
      C XB1B1     XC1C1     ! 臼を疏に変換する
      C XB1B2     XC1C2     ! 渦を疎に変換する
      I XD1D1               ! 冪があれば通知する
        ...................
        ...................
      END                   ! 変換指定テーブル終り

1. コメント行

   半角の感嘆符 '!' で始まる行はコメント行です。変換・検査には使用されません。

   - 1行の最大長は 255 バイトです。

2. 変換指定行

   先頭が半角の 'C' で始まる行は変換指定になります。

   - 各フィールドは1つ以上の空白またはタブで区切ります。

   - 1行の最大長は 255 バイトです。

   - 感嘆符 '!' より右側はコメントとみなされます。

   - 指定できる漢字コードは DEC 漢字セットに含まれる文字で，'X' で始まる4けたの 16 進コード，または 'J' で始まる4けたまたは5けた(次の注意を参照のこと) の区点番号で指定します。

     ## 例

     >           XB0A1 ...... 亜    J1601 ...... 亜
     >           XA2A1 ...... ◆    J0201 ...... ◆

     注意 《区点番号による漢字コードの記述の制限事項》 DEC漢字1区1点の文字コードはJ0101と記述します。拡張領域の文字コードは'J1'で始まる4けたの区点番号で記述します。 DEC拡張漢字1区1点の文字は先頭に 1 をつけ J10101 と記述でき，これは XA121 と同じ文字コードを示します。

3. 通知指定行 先頭が 'I' で始まる行で記述した漢字コードは変換されません。変換・検査を実行した際に，この漢字コードが入力ファイルに存在したことを通知する指定です。

   - 各フィールドのは1つ以上の空白またはタブで区切ります。

   - 1行の最大長は 255 バイトです。

   - 感嘆符 '!' より右側はコメントとみなされます。

   - 漢字コードの記述方法は変換指定行と同じです。

4. 終了行

   先頭が 'END' で始まる行までが変換テーブルとして扱われます。この行以降は何が記述されていても無視されます。

   - 感嘆符 '!' より右側はコメントとみなされます。

   - 1行の最大長は 255 バイトです。

# 7.4 使用例

使用例として，DEC 漢字 1978 年版漢字コードと DEC 漢字 1983 年版の相互変換方法を説明します。

## 7.4.1 1978 年版から 1983 年版への変換

DEC 漢字 1978 年版のファイルをDEC 漢字 1983 年版に変換する場合は，以下の変換テーブルを使用します。

        JSY$SYSTEM:KCV78TO83.TABLE

このテーブルでは，次の項目が指定されています。

- 拡張領域の罫線コードを8区の細い罫線コードに変換する

- 第1水準と第2水準の位置が交換された漢字コードを置換する

- 1983 年版で 84 区に移動した漢字は 84 区のコードに変換する

- 字形が変わった漢字はそのまま(通知のみ)

変換を行うには，次のようにします。

    $ KCONVERT/TABLE=JSY$SYSTEM:KCV78TO83.TABLE[/修飾子] 入力ファイル名
                                                                    [出力ファイル名]

## 7.4.2 1983 年版から 1978 年版への変換

DEC 漢字1983 年版の漢字コードを DEC 漢字 1978 年版に変換する場合は，以下の変換テーブルを使用します。

       JSY$SYSTEM:KCV83TO78.TABLE

このテーブルでは，次の項目が指定されています。

- 8区の罫線コードを 1978 年版の拡張領域の罫線コードに変換する

- 第1水準と第2水準の位置が交換された漢字コードを置換する

- 84 区の4つの漢字は 1978 年版のコードに変換する

- 字形が変わった漢字はそのまま(通知のみ)

- 1983 年版で追加された特殊文字はそのまま(通知のみ)

変換を行うには，次のようにします。

    $ KCONVERT/TABLE=JSY$SYSTEM:KCV83TO78.TABLE [/修飾子] 入力ファイル名
                                                                    [出力ファイル名]

日本語 Compaq OpenVMS が標準として提供するのは上の2つのテーブルのみです。変換を罫線コードに限定するなど変換内容を変える場合は，新たに変換テーブルを作成してください。

# 7.5 コード変換ライブラリ

KCONVERT ユーティリティが使用しているルーチンがランタイム・ライブラリとして JSY$LIBRARY:JSYLIB.OLB に入っています。また，ステータス定義ファイルとしては JSY$SYSTEM:JSYDEF.* (* は FOR，H など各言語用) があります。

KCONVERT ユーティリティでは処理できない場合は，コード変換ルーチンを用いて専用の変換プログラムを作成してください。

各ルーチンについては『日本語ライブラリ 利用者の手引き』を参照してください。

前へ | 次へ | 目次 | 索引