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

前へ | 次へ | 目次 | 索引

＜戻り値＞

match | 1 : 文字列1が文字列2で始まっている
| 0 : 文字列1が文字列2で始まっていない

JLB$STR_SEARCH

> 英大文字/小文字，全角/半角，ひらがな/カタカナ変換による文字列の検索
> 検索文字列が含まれていない場合は0を返します。

＜形式＞

> index = JLB$STR_SEARCH ( src-str, sub-str [[, start-pos][, flg]] )

＜引数＞

src-str |
--- | ---
JLB usage | 入力文字列
access | 入力のみ
mechanism | Descriptor渡し
sub-str |
JLB usage | 検索文字列
access | 入力のみ
mechanism | Descriptor渡し
start-pos |
JLB usage | 検索開始文字位置 (省略時は1)
type | Longword
access | 入力のみ
mechanism | Reference渡し
flg |
JLB usage | 変換フラグ (省略時は0)
type | Byte
access | 入力のみ
mechanism | Reference渡し
| 検索の前に行う変換を指定する。
| bit 0 | 0 : 英大文字/小文字変換を行う
|  | 1 : 英大文字/小文字変換を行わない
| bit 1 | 0 : 全角/半角変換を行う
|  | 1 : 全角/半角変換を行わない
| bit 2 | 0 : ひらがな/カタカナ変換を行う
|  | 1 : ひらがな/カタカナ変換を行わない

＜戻り値＞

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

例)

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

    main()
    {
        struct dsc$descriptor_s     src_str;
        struct dsc$descriptor_s     sub_str;
        char        flg;
        int         index;
        extern int  jlb$str_search();
        char        src_str_body[] = "日本語ライブラリ",
                    sub_str_body[] = "らいぶらり";
        int         start_pos = 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;

        sub_str.dsc$b_class = DSC$K_CLASS_S;
        sub_str.dsc$b_dtype = DSC$K_DTYPE_T;
        sub_str.dsc$w_length = strlen( sub_str_body );
        sub_str.dsc$a_pointer = sub_str_body;

        printf( "文字列 1:\"%s\"    文字列 2:\"%s\"\n", src_str_body, sub_str_body);
        for ( flg = 0; flg < 8; ++flg ) {
            index = jlb$str_search( &src_str, &sub_str, &start_pos, &flg );
            printf( "変換フラグ :%1d    結果 :%d\n", flg, index );
        }
    }

JLB$TRIM

> 文字列の後の空白の切り捨て
> 文字列の後に含まれる空白(半角および全角)ならびにタブを切り捨てます。

＜形式＞

> ret-status = JLB$TRIM ( 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 | 出力文字列用領域の長さが足りないため，出力結果の切り捨てが行われた

例)

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

    #include <ssdef.h>
    #include <stsdef.h>
    #include <varargs.h>

    main()
    {
        struct dsc$descriptor_s     dst_str;
        struct dsc$descriptor_s     src_str;
        int         ret_status;
        extern int  jlb$trim();
        char        src_str_body[] = "日本語    ";
        char        dst_str_body[] = "外国人    ";

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

        printf( "入力文字列 :\"%s\"\n", src_str_body );

        ret_status = jlb$trim( &dst_str, &src_str, &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;
        }
        putchar( '\n' );
    }

JLB$TRUNC

> 文字列の切り捨て
> 文字列を指定された長さで切り捨てます。

＜形式＞

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

＜引数＞

dst-str
JLB usage | 出力文字列
access | 出力のみ
mechanism | Descriptor渡し
src-str
JLB usage | 入力文字列
access | 入力のみ
mechanism | Descriptor渡し
size
JLB usage | 切り捨てを行う長さ
type | Word
access | 入力のみ
mechanism | Reference渡し
out-len
JLB usage | 出力文字列のバイト長
type | Word
access | 出力のみ
mechanism | Reference渡し

＜戻り値＞

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

JLB$LOCC

> 文字の検索
> 入力文字列中で最初に現れた検索文字の文字位置を返します。検索文字が含まれていない場合は0を返します。

＜形式＞

> index = JLB$LOCC ( char-str, src-str )

＜引数＞

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

＜戻り値＞

index | 文字位置

例)

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

    main()
    {
        struct dsc$descriptor_s     char_str;
        struct dsc$descriptor_s     src_str;
        int         index;
        extern int  jlb$locc();
        char        char_str_body[] = "本",
                    src_str_body[]  = "日本語";
        char_str.dsc$b_class = src_str.dsc$b_class = DSC$K_CLASS_S;
        char_str.dsc$b_dtype = src_str.dsc$b_dtype = DSC$K_DTYPE_T;
        char_str.dsc$w_length = strlen( char_str_body );
        char_str.dsc$a_pointer = char_str_body;
        src_str.dsc$w_length = strlen( src_str_body );
        src_str.dsc$a_pointer = src_str_body;

        index = jlb$locc( &char_str, &src_str );

        printf( "検索文字 :\'%s\'    入力文字列 :\"%s\"\n 結果 :%d\n",
            char_str_body, src_str_body, index );
    }

JLB$SKPC

> 文字の飛び越し
> 入力文字列中で最初に現れた検索文字以外の文字位置を返します。検索文字以外の文字がない場合は0を返します。

＜形式＞

> index = JLB$SKPC ( char-str, src-str )

＜引数＞

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

＜戻り値＞

index | 文字位置
| char-str の長さがゼロの場合は 1

JLB$RCHAR

> 文字列からの文字の取り出し

＜形式＞

> char-code = JLB$RCHAR ( src-str [, pos] )

＜引数＞

src-str
JLB usage | 入力文字列
access | 入力のみ
mechanism | Descriptor渡し
pos
JLB usage | 文字位置
type | Longword
access | 入力のみ
mechanism | Reference渡し

＜戻り値＞

char-code | 文字コード

JLB$RNEXT

> 文字列からの文字の取り出しおよびインデックスの更新

＜形式＞

> char-code = JLB$RNEXT ( src-str [, pos] )

＜引数＞

src-str
JLB usage | 入力文字列
access | 入力のみ
mechanism | Descriptor渡し
pos
JLB usage | 文字位置
type | Longword
access | 更新
mechanism | Reference渡し

＜戻り値＞

char-code | 文字コード

JLB$WCHAR

> 文字列への文字の書き込み

＜形式＞

> ret-status = JLB$WCHAR ( char-code, dst-str [, pos] )

＜引数＞

char-code
JLB usage | 文字コード
type | Longword
access | 入力のみ
mechanism | Reference渡し
dst-str
JLB usage | 出力文字列
access | 出力のみ
mechanism | Descriptor渡し
pos
JLB usage | 文字位置
type | Longword
access | 入力のみ
mechanism | Reference渡し

＜戻り値＞

ret-status | 1 : 正常終了
| 0 : 出力文字列の長さが短い

JLB$WNEXT

> 文字列への文字の書き込みおよびインデックスの更新

＜形式＞

> ret-status = JLB$WNEXT ( char-code, dst-str [, pos] )

＜引数＞

char-code
JLB usagec： | 文字コード
type | Longword
access | 入力のみ
mechanism | Reference渡し
dst-str
JLB usage | 出力文字列
access | 出力のみ
mechanism | Descriptor渡し
pos
JLB usage | 文字位置
type | Longword
access | 更新
mechanism | Reference渡し

＜戻り値＞

ret-status | 1 : 正常終了
| 0 : 出力文字列の長さが短い

前へ | 次へ | 目次 | 索引