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


前へ 次へ 目次 索引



第 3 章
汎用ライブラリ

汎用ライブラリ とは,プログラミング言語から標準的なインタフェースで利用できる日本語処理ルーチン群です。

この章では,汎用ライブラリの次の項目について説明します。

汎用ライブラリ・ルーチン一覧
日本語文字列操作ルーチン
文字列変換ルーチン
漢字変換入力ルーチン
その他のルーチン

3.1 汎用ライブラリ・ルーチン一覧

日本語文字列操作ルーチン

日本語データを扱うための基本的なルーチン群です。 1 バイト /2 バイトの文字コードを正しく取り扱うために使用します。

JLB$NOF_BYTE 文字列が占めるバイト数の入手
JLB$NOF_CHAR 文字列に含まれる文字数の入手
JLB$POS_CURR 現在の文字の文字位置の入手
JLB$POS_NEXT 次の文字の文字位置の入手
JLB$POS_PREV 前の文字の文字位置の入手
JLB$POSITION 文字列の検索
JLB$STR_EQUAL 英大文字/小文字,全角/半角,
ひらがな/カタカナ変換による文字列の比較
JLB$STR_START 英大文字/小文字,全角/半角,
ひらがな/カタカナ変換による文字列の比較
JLB$STR_SEARCH 英大文字/小文字,全角/半角,
ひらがな/カタカナ変換による文字列の検索
JLB$TRIM 文字列の後の空白の切り捨て
JLB$TRUNC 文字列の切り捨て
JLB$LOCC 文字の検索
JLB$SKPC 文字の飛越し
JLB$RCHAR 文字列からの文字の取り出し
JLB$RNEXT 文字列からの文字の取り出し,
およびインデックスの更新
JLB$WCHAR 文字列への文字の書込み
JLB$WNEXT 文字列への文字の書込み,
およびインデックスの更新

文字列変換ルーチン

文字列の各種変換を行うルーチン群です。

JLB$TRA_ROM_HALF ローマ文字全角から半角への変換
JLB$TRA_ROM_FULL ローマ文字半角から全角への変換
JLB$TRA_ROM_SIZE ローマ文字全角/半角の相互変換
JLB$TRA_ROM_LOWER 英文字半角/全角の小文字への変換
JLB$TRA_ROM_UPPER 英文字半角/全角の大文字への変換
JLB$TRA_ROM_CASE 英文字全角/半角の大文字/小文字の相互変換
JLB$TRA_ROM_KANA ローマ字から全角ひらがな/カタカナへの変換
JLB$TRA_KANA_HIRA 全角カタカナから全角ひらがなへの変換
JLB$TRA_KANA_KATA 全角ひらがなから全角カタカナへの変換
JLB$TRA_KANA_KANA 全角ひらがな/全角カタカナの相互変換
JLB$TRA_KANA_DAKU 全角ひらがな/カタカナの濁点/半濁点処理
JLB$TRA_KANA_HALF 全角ひらがな/カタカナから半角カタカナへの変換
JLB$TRA_KANA_FULL 半角カタカナから全角ひらがな/カタカナへの変換
JLB$TRA_SYMBOL 記号変換

漢字変換入力ルーチン

ローマ字・かな漢字変換入力を簡単に行うためのルーチン群です。

JLB$GET_COMMAND LIB$GET_COMMAND のローマ字・かな漢字変換入力版
JLB$GET_INPUT LIB$GET_INPUT のローマ字・かな漢字変換入力版

日本語ファイル名ルーチン

JLB$RMS_USER_VTF7 指定されたコードセットから VTF-7 コードセットへ日本語ファイル名の文字コード変換を行う。
JLB$RMS_VTF7_USER VTF-7 コードセットから指定されたコードセットへ日本語ファイル名の文字コード変換を行う。
JSY$RMS_GET_ENCODING 現在のファイル名コンバータの名前を取得する
JSY$RMS_LIST_ENCODING システムにインストールされているファイル名コンバータの名前を取得する
JSY$RMS_SET_ENCODING RMS ファイル名コンバータを有効または無効にする
JSY$RMS_USER_VTF7 指定されたコードセットから VTF-7 コードセットへ日本語ファイル名の文字コード変換を行う。
JSY$RMS_VTF7_USER VTF-7 コードセットから指定されたコードセットへ日本語ファイル名の文字コード変換を行う。

その他のルーチン

JLB$DATE_TIME 日付けおよび時間の入手
JLB$DEV_KANJI 漢字端末かどうかのチェック
JLB$DEV_KANJI_IN 漢字入力端末かどうかのチェック

3.2 日本語文字列操作ルーチン

日本語文字列操作ルーチンは,日本語データを扱うための基本的なルーチン群です。 1 バイト /2 バイトの文字コードを正しく取り扱うために使用します。

JLB$NOF_BYTE

文字列が占めるバイト数の入手

文字列内の指定された文字数によって占められるバイト数を返します。

<形式>

nof-byte = JLB$NOF_BYTE ( src-str , nof-char )

<引数>

src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
nof_char
        JLB usage 文字数
        type Longword
        access 入力のみ
        mechanism Reference渡し

<戻り値>

    nof_byte バイト数

例)


#include <stdio.h> 
#include <descrip.h> 
#include <string.h> 
 
main() 
{ 
    struct dsc$descriptor_s     src_str; 
    int         nof_byte; 
    extern int  jlb$nof_byte(); 
    char        src_str_body[] = "日本語RTL"; 
    int         nof_char = 4; 
 
    src_str.dsc$b_class = DSC$K_CLASS_S; 
    src_str.dsc$b_dtype = DSC$K_DTYPE_T; 
    src_str.dsc$w_length = strlen( src_str_body ); 
    src_str.dsc$a_pointer = src_str_body; 
 
    nof_byte = jlb$nof_byte( &src_str, &nof_char ); 
 
    printf( "文字列 :\"%s\"    文字数 :%d\n 結果 :%d\n", 
        src_str_body, nof_char, nof_byte ); 
} 

JLB$NOF_CHAR

文字列が含まれる文字数の入手

文字列全体に含まれる文字数を返します。

<形式>

nof-char = JLB$NOF_CHAR ( src-str )

<引数>

src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し

<戻り値>

    nof-char 文字数

JLB$POS_CURR

現在の文字の文字位置の入手

指定された文字位置が,文字の1バイト目,2バイト目のどちらを指しているかにかかわらず,常に現在指している文字の1バイト目の文字位置を返します。

<形式>

index = JLB$POS_CURR ( src-str, curr-index )

<引数>

src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
curr-index
        JLB usage 現在の文字位置
        type Longword
        access 入力のみ
        mechanism Reference渡し

<戻り値>

    index 文字位置

JLB$POS_NEXT

次の文字の文字位置の入手

指定された文字位置が,文字の1バイト目,2バイト目のどちらを指しているかにかかわらず,常に現在指している文字の次の文字の,1バイト目の文字位置を返します。

<形式>

index = JLB$POS_NEXT ( src-str, curr-index )

<引数>

src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
curr-index
        JLB usage 現在の文字位置
        type Longword
        access 入力のみ
        mechanism Reference渡し

<戻り値>

    index 文字位置
  curr-index が src-str の長さより大きい場合は 0
  curr-index がマイナスの場合は 0

例)


#include <stdio.h> 
#include <descrip.h> 
#include <string.h> 
 
main() 
{ 
    struct dsc$descriptor_s     src_str; 
    int         index; 
    extern int  jlb$pos_next(); 
    char        src_str_body[] = "日本語RTL"; 
    int         curr_index = 1; 
 
    src_str.dsc$b_class = DSC$K_CLASS_S; 
    src_str.dsc$b_dtype = DSC$K_DTYPE_T; 
    src_str.dsc$w_length = strlen( src_str_body ); 
    src_str.dsc$a_pointer = src_str_body; 
 
    index = jlb$pos_next( &src_str, &curr_index ); 
 
    printf( "文字列 :\"%s\"    文字位置 :%d\n 結果 :%d\n", 
        src_str_body, curr_index, index ); 
} 

JLB$POS_PREV

前の文字の文字位置の入手

指定された文字位置が,文字の1バイト目または2バイト目のどちらを指しているかにかかわらず,常に現在指している文字の前の文字の1バイト目の文字位置を返します。

<形式>

index = JLB$POS_PREV ( src-str, curr-index )

<引数>

src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
curr-index
        JLB usage 現在の文字位置
        type Longword
        access 入力のみ
        mechanism Reference渡し

<戻り値>

    index 文字位置
  curr-index が src-str の長さより大きい場合は 0
  curr-index がゼロ以下の場合は 0

JLB$POSITION

入力文字列中に含まれる検索文字列の先頭の文字位置を返します。

検索文字列が含まれていない場合は0を返します。

<形式>

index = JLB$POSITION ( src-str, sub-str [, start-pos] )

<引数>

src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
sub-str
        JLB usage 検索文字列
        access 入力のみ
        mechanism Descriptor渡し
start-pos
        JLB usage 検索開始文字位置 (省略時は1)
        type Longword
        access 入力のみ
        mechanism Reference渡し

<戻り値>

    index 検索文字列が含まれている場合はその開始位置
  検索文字列が含まれていなければ 0
  検索文字列の長さがゼロの場合は 1

JLB$STR_EQUAL

英大文字/小文字,全角/半角,ひらがな/カタカナ変換による文字列の比較

<形式>

match = JLB$STR_EQUAL ( str1, str2 [, flg] )

<引数>

strl  
        JLB usage 比較対象文字列1
        access 入力のみ
        mechanism Descriptor渡し
str2  
        JLB usage 比較対象文字列2
        access 入力のみ
        mechanism Descriptor渡し
flg  
        JLB usage 変換フラグ(省略時は0)
        type Byte
        access 入力のみ
        mechanism Reference渡し
  比較の前に行う変換を指定する。
  bit 0 0 : 英大文字/小文字変換を行う
    1 : 英大文字/小文字変換を行わない
  bit 1 0 : 全角/半角変換を行う
    1 : 全角/半角変換を行わない
  bit 2 0 : ひらがな/カタカナ変換を行う
    1 : ひらがな/カタカナ変換を行わない

<戻り値>

    match 1 : 文字列1が文字列2が等しい
  0 : 文字列1が文字列2が等しくない

JLB$STR_START

英大文字/小文字,全角/半角,ひらがな/カタカナ変換による文字列の比較

文字列1が文字列2で始まっているかどうかを調べます。

<形式>

match = JLB$STR_START ( str1, str2 [, flg] )

<引数>

strl  
        JLB usage 比較対象文字列1
        access 入力のみ
        mechanism Descriptor渡し
str2  
        JLB usage 比較対象文字列2
        access 入力のみ
        mechanism Descriptor渡し
flg  
        JLB usage 変換フラグ
        type Byte
       access 入力のみ
        type Reference渡し
  比較の前に行う変換を指定する。
  bit 0 0 : 英大文字/小文字変換を行う
    1 : 英大文字/小文字変換を行わない
  bit 1 0 : 全角/半角変換を行う
    1 : 全角/半角変換を行わない
  bit 2 0 : ひらがな/カタカナ変換を行う
    1 : ひらがな/カタカナ変換を行わない


前へ 次へ 目次 索引