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

前へ | 次へ | 目次 | 索引

# 3.3 文字列変換ルーチン

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

JLB$TRA_ROM_HALF

> ローマ文字全角から半角への変換

例)

            入力文字列      "ａｂｃｄＥＦＧＨｉｊｋｌＭＮＯＰ"
            出力文字列      "abcdEFGHijklMNOP"

＜形式＞

> ret-status = JLB$TRA_ROM_HALF ( dst-str, src-str [, out-len] )

＜引数＞

dst-str
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
out-len
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

JLB$TRA_ROM_FULL

> ローマ文字半角から全角への変換

例)

            入力文字列      "abcdEFGHijklMNOP"
            出力文字列      "ａｂｃｄＥＦＧＨｉｊｋｌＭＮＯＰ"

＜形式＞

> ret-status = JLB$TRA_ROM_FULL ( dst-str, src-str [, out-len] )

＜引数＞

dst-str
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
out-len
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

JLB$TRA_ROM_SIZE

> ローマ文字全角/半角の相互変換

例)

            入力文字列      "ａｂｃｄEFGHｉｊｋｌMNOP"
            出力文字列      "abcdＥＦＧＨijklＭＮＯＰ"

＜形式＞

> ret-status = JLB$TRA_ROM_SIZE ( dst-str, src-str [, out-len] )

＜引数＞

dst-str
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
out-len
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

JLB$TRA_ROM_LOWER

> 英文字半角/全角の小文字への変換

例)

            入力文字列      "abcdEFGHｉｊｋｌＭＮＯＰ"
            出力文字列      "abcdefghｉｊｋｌｍｎｏｐ"

＜形式＞

> ret-status = JLB$TRA_ROM_LOWER ( dst-str, src-str [, out-len] )

＜引数＞

dst-str
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
out-len
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

JLB$TRA_ROM_UPPER

> 英文字半角/全角の大文字への変換

例)

            入力文字列      "abcdEFGHｉｊｋｌＭＮＯＰ"
            出力文字列      "ABCDEFGHＩＪＫＬＭＮＯＰ"

＜形式＞

> ret-status = JLB$TRA_ROM_UPPER ( dst-str, src-str [, out-len] )

＜引数＞

dst-str
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
out-len
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

JLB$TRA_ROM_CASE

> 英文字全角/半角の大文字/小文字の相互変換

例)

            入力文字列      "abcdEFGHｉｊｋｌＭＮＯＰ"
            出力文字列      "ABCDefghＩＪＫＬｍｎｏｐ"

＜形式＞

> ret-status = JLB$TRA_ROM_CASE ( dst-str, src-str [, out-len] )

＜引数＞

dst-str
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
out-len
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

JLB$TRA_ROM_KANA

> ローマ字から全角ひらがな/カタカナへの変換

例)

            入力文字列      "ro-maji"
            出力文字列      " ろーまじ "            ひらがな指定
            出力文字列      " ローマジ "            カタカナ指定

＜形式＞

> ret-status = JLB$TRA_ROM_KANA ( dst-str, src-str [, flg [, out-len]] )

＜引数＞

dst-str |
--- | ---
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str |
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
flg |
JLB usage | 変換指示フラグ (省略時は0)
type | Byte
access | 入力のみ
mechanism | Reference渡し
| bit 0 | 0 : 全角ひらがなへ変換
|  | 1 : 全角カタカナへ変換
out-len |
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

例)

    #include <stdio.h>
    #include <descrip.h>
    #include <string.h>
    #include <ssdef.h>
    #include <libdef.h>

    main()
    {
        struct dsc$descriptor_s     dst_str;
        struct dsc$descriptor_s     src_str;
        char        flg;
        int         ret_status;
        extern int  jlb$tra_rom_kana();
        char        dst_str_body[] = "              ";
        char        src_str_body[] = "nihongo";

        dst_str.dsc$b_class = DSC$K_CLASS_S;
        dst_str.dsc$b_dtype = DSC$K_DTYPE_T;
        dst_str.dsc$w_length = strlen( dst_str_body );
        dst_str.dsc$a_pointer = dst_str_body;

        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;

        for ( flg = 0 ; flg < 2 ; ++flg ) {
            printf( "変換前文字列 :\"%s\"    変換フラグ :%1d\n", src_str_body, flg );

            ret_status = jlb$tra_rom_kana( &dst_str, &src_str,
                             &flg, &dst_str.dsc$w_length );
            dst_str_body[ dst_str.dsc$w_length ] = '\0';
            printf( "変換後文字列 :\"%s\"    文字列長 :%d    ステータス :",
                dst_str.dsc$a_pointer, dst_str.dsc$w_length );

            switch ( ret_status ) {
            case SS$_NORMAL:
                printf( "SS$_NORMAL" );
                break;
            case LIB$_STRTRU:
                printf( "LIB$_STRTRU" );
                break;
            }
            printf( "\n\n" );
        }
    }

JLB$TRA_KANA_HIRA

> 全角カタカナから全角ひらがなへの変換

例)

            入力文字列      " あいうえおカキクケコ "
            出力文字列      " あいうえおかきくけこ "

＜形式＞

> ret-status = JLB$TRA_KANA_HIRA ( dst-str, src-str [, out-len] )

＜引数＞

dst-str
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
out-len
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

JLB$TRA_KANA_KATA

> 全角ひらがなから全角カタカナへの変換

例)

            入力文字列      " あいうえおカキクケコ "
            出力文字列      " アイウエオカキクケコ "

＜形式＞

> ret-status = JLB$TRA_KANA_KATA ( dst-str, src-str [, out-len] )

＜引数＞

dst-str
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
out-len
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

JLB$TRA_KANA_KANA

> 全角ひらがな/全角カタカナの相互変換

例)

            入力文字列      " あいうえおカキクケコ "
            出力文字列      " アイウエオかきくけこ "

＜形式＞

> ret-status = JLB$TRA_KANA_KANA ( dst-str, src-str [, out-len] )

＜引数＞

dst-str
JLB usage | 変換後文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 変換前文字列
access | 入力のみ
mechanism | Descriptor渡し
out-len
JLB usage | 変換結果のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

前へ | 次へ | 目次 | 索引