[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]
この章では,汎用ライブラリについて説明します。
汎用ライブラリとは
プログラミング言語から標準的なインターフェイスで利用できる日本語処理ルーチン群です。
日本語文字列操作ルーチン
日本語データを扱うための基本的なルーチン群です。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$DATE_TIME | 日付けおよび時間の入手 |
JLB$DEV_KANJI | 漢字端末かどうかのチェック |
JLB$DEV_KANJI_IN | 漢字入力端末かどうかのチェック |
JSY$RMS_GET_ENCODING | 現在のファイル名コンバータの名前を取得する |
JSY$RMS_LIST_ENCODING | システムにインストールされているファイル名コンバータの名前を取得する |
JSY$RMS_SET_ENCODING | RMS ファイル名コンバータを有効または無効にする |
日本語データを扱うための基本的なルーチン群です。 1バイト/2バイトの文字コードを正しく取り扱うために使用します。
JLB$NOF_BYTE
<形式>
<引数>
str-str | ||
---|---|---|
JLB usage | :入力文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | nof_ char |
JLBusage | :文字数 | |
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
<形式>
<引数>
src-str | ||
---|---|---|
JLB usage | :入力文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し |
<戻り値>
nof-char | 文字数 |
JLB$POS_CURR
<形式>
<引数>
src-str | ||
---|---|---|
JLB usage | :入力文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | curr- index |
JLB usage | :現在の文字位置 | |
type | :Longword | |
access | :入力のみ | |
mechanism | :Reference渡し |
<戻り値>
index | 文字位置 |
JLB$POS_NEXT
<形式>
<引数>
src-str | ||
---|---|---|
JLB usage | :入力文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | curr- index |
JLB usage | :現在の文字位置 | |
type | :Longword | |
access | :入力のみ | |
mechanism | :Reference渡し |
<戻り値>
index | 文字位置 |
例)
#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
<形式>
<引数>
src-str | ||
---|---|---|
JLB usage | :入力文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | curr- index |
JLB usage | :現在の文字位置 | |
type | :Longword | |
access | :入力のみ | |
mechanism | :Reference渡し |
<戻り値>
index | 文字位置 |
JLB$POSITION
<形式>
<引数>
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 |
JLB$STR_EQUAL
<形式>
<引数>
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
<形式>
<引数>
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 : ひらがな/カタカナ変換を行わない |
<戻り値>
match | 1 : 文字列1が文字列2で始まっている |
0 : 文字列1が文字列2で始まっていない |
JLB$STR_SEARCH
<形式>
<引数>
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 | |
JLBusage | :変換フラグ (省略時は0) | ||
type | :Byte | ||
access | :入力のみ | ||
mechanism | :Reference渡し | ||
検索の前に行う変換を指定する。 | |||
bit 0 | 0 : 英大文字/小文字変換を行う | ||
1 : 英大文字/小文字変換を行わない | |||
bit 1 | 0 : 全角/半角変換を行う | ||
1 : 全角/半角変換を行わない | |||
bit 2 | 0 : ひらがな/カタカナ変換を行う | ||
1 : ひらがな/カタカナ変換を行わない |
<戻り値>
index | 1 : 検索文字列が含まれている場合はその開始位置 |
0 : 検索文字列が含まれていなければ0 |
例)
#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
<形式>
<引数>
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
<形式>
<引数>
dst-str | ||
---|---|---|
JLB usage | :出力文字列 | |
access | :出力のみ | |
mechanism | :Descriptor渡し | src-str |
JLB usage | :入力文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | size |
JLB usage | :切り捨てを行う長さ | |
type | :Word | |
access | :入力のみ | |
mechanism | :Reference渡し | out-len |
JLBusage | :出力文字列のバイト長 | |
type | :Word | |
access | :出力のみ | |
mechanism | :Reference渡し |
<戻り値>
ret-status | SS$_NORMAL | 正常終了 |
LIB$_ STRTRU | 出力結果の切り捨てが行われた |
JLB$LOCC
<形式>
<引数>
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
<形式>
<引数>
char-str | ||
---|---|---|
JLB usage | :検索文字 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | src-str |
JLB usage | :入力文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し |
<戻り値>
index | 文字位置 |
JLB$RCHAR
<形式>
<引数>
src-str | ||
---|---|---|
JLB usage | :入力文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | pos |
JLB usage | :文字位置 | |
type | :Longword | |
access | :入力のみ | |
mechanism | :Reference渡し |
<戻り値>
char-code | 文字コード |
JLB$RNEXT
<形式>
<引数>
src-str | ||
---|---|---|
JLB usage | :入力文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | pos |
JLB usage | :文字位置 | |
type | :Longword | |
access | :更新 | |
mechanism | :Reference渡し |
<戻り値>
char-code | 文字コード |
JLB$WCHAR
<形式>
<引数>
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
<形式>
<引数>
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 : 出力文字列の長さが短い |
文字列の各種変換を行うルーチン群です。
JLB$TRA_ROM_HALF
例)
入力文字列 "abcdEFGHijklMNOP" 出力文字列 "abcdEFGHijklMNOP"
<形式>
<引数>
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" 出力文字列 "abcdEFGHijklMNOP"
<形式>
<引数>
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
例)
入力文字列 "abcdEFGHijklMNOP" 出力文字列 "abcdEFGHijklMNOP"
<形式>
<引数>
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
例)
入力文字列 "abcdEFGHijklMNOP" 出力文字列 "abcdefghijklmnop"
<形式>
<引数>
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
例)
入力文字列 "abcdEFGHijklMNOP" 出力文字列 "ABCDEFGHIJKLMNOP"
<形式>
<引数>
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
例)
入力文字列 "abcdEFGHijklMNOP" 出力文字列 "ABCDefghIJKLmnop"
<形式>
<引数>
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" 出力文字列 " ろーまじ " ひらがな指定 出力文字列 " ローマジ " カタカナ指定
<形式>
<引数>
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
例)
入力文字列 " あいうえおカキクケコ " 出力文字列 " あいうえおかきくけこ "
<形式>
<引数>
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
例)
入力文字列 " あいうえおカキクケコ " 出力文字列 " アイウエオカキクケコ "
<形式>
<引数>
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
例)
入力文字列 " あいうえおカキクケコ " 出力文字列 " アイウエオかきくけこ "
<形式>
<引数>
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_DAKU
例)
入力文字列 " か゛き゛く゛け゛こ゛は゜ひ゜ふ゜へ゜ほ゜" 出力文字列 " がぎぐげごぱぴぷぺぽ "
<形式>
<引数>
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_HALF
例)
<形式>
<引数>
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_FULL
例)
<形式>
<引数>
dst-str | |||
---|---|---|---|
JLB usage | :変換後文字列 | ||
access | :出力のみ | ||
mechanism | :Descriptor渡し | src-str | |
JLB usage | :変換前文字列 | ||
access | :入力のみ | ||
mechanism | :Descriptor渡し | flg | |
JLB usage | :変換指示フラグ | ||
type | :Byte | ||
access | :入力のみ | ||
mechanism | :Reference渡し | ||
bit 0 | 0 : 全角ひらがなへ変換 | ||
1 : 全角カタカナへ変換 | |||
bit 1 | 0 : 濁点/半濁点処理を行う | ||
1 : 濁点/半濁点処理を行わない | out-len | ||
JLB usage | :変換結果のバイト長 | ||
type | :Word | ||
access | :出力のみ | ||
mechanism | :Reference渡し |
<戻り値>
ret-status | SS$_NORMAL | 正常終了 |
LIB$_ STRTRU | 出力結果の切り捨てが行われた |
JLB$TRA_SYMBOL
例)
入力文字列 "[( )] <> k<> 123" 出力文字列 " 【 】 ◇ ◆ └┴┘ "
<形式>
<引数>
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$GET_COMMAND
<形式>
<引数>
get-str | ||
---|---|---|
JLB usage | :入力文字列 | |
access | :出力のみ | |
mechanism | :Descriptor渡し | prompt-str |
JLB usage | :プロンプト文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | out-len |
JLB usage | :入力文字列のバイト長 | |
type | :Word | |
access | :出力のみ | |
mechanism | :Reference渡し | src-str |
JLB usage | :変換対象文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し |
<戻り値>
ret-status | SS$_NORMAL | 正常終了 |
RMS$_ EOF | End of File検出時 |
JLB$GET_INPUT
<形式>
<引数>
get-str | ||
---|---|---|
JLB usage | :入力文字列 | |
access | :出力のみ | |
mechanism | :Descriptor渡し | prompt-str |
JLB usage | :プロンプト文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し | out-len |
JLB usage | :入力文字列のバイト長 | |
type | :Word | |
access | :出力のみ | |
mechanism | :Reference渡し | src-str |
JLB usage | :変換対象文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し |
<戻り値>
ret-status | SS$_NORMAL | 正常終了 |
RMS$_ EOF | End of File検出時 |
JLB$DATE_TIME
例)
12時間制の場合 平成元年 2月14日 (火) 午後 5時21分 3秒 24時間制の場合 平成元年 2月14日 (火) 17時21分 3秒
<形式>
<引数>
dst-str | ||
---|---|---|
JLB usage | :出力文字列 | |
access | :出力のみ | |
mechanism | :Descriptor渡し | flg |
JLBusage | :時間制の指定 | |
type | :Byte | |
access | :入力のみ | |
mechanism | :Reference渡し | |
0 : 12時間制(省略時の値) | ||
1 : 24時間制 | out-len | |
JLB usage | :出力文字列のバイト長 | |
type | :Word | |
access | :出力のみ | |
mechanism | :Reference渡し |
<戻り値>
ret-status | SS$_NORMAL | 正常終了 |
LIB$_ STRTRU | 出力結果の切捨てが行われた |
JLB$DATE_TIMEで使用する元号の名称および日付は,論理名で定義されます。 この論理名は,システムのスタートアップ時に, SYS$STARTUP:JSY$DT_STARTUP.COMを実行することによって定義されます (SYS$STARTUP:JSY$STARTUP.COMの中から実行されます)。省略時には次のように定義します。
$ define/system/exec jsy$era_name - "平成", - "昭和", - "大正", - "明治" $ define/system/exec jsy$era_begin_date - "19890108", - "19261425", - "19140730", - "18680908" $ define/system/exec jsy$era_display_form 1
3番目の論理名,JSY$ERA_DISPLAY_FORMATは, その元号の初年度を「1年(0)」で表示するか, または「元年(1)」で表示するかを選択します。 省略時の設定では「元年」です。
例)
#include <stdio.h> #include <descrip.h> #include <ssdef.h> #include <libdef.h> #define BUFLEN 100 main() { struct dsc$descriptor_s dst_str; char flg; short int out_len; int ret_status; char buffer[ BUFLEN ]; extern int jlb$date_time(); dst_str.dsc$b_class = DSC$K_CLASS_S; dst_str.dsc$b_dtype = DSC$K_DTYPE_T; dst_str.dsc$w_length = sizeof( buffer ); dst_str.dsc$a_pointer = buffer; for ( flg = 0 ; flg < 2 ; ++flg ) { ret_status = jlb$date_time( &dst_str, &flg, &out_len ); buffer[ out_len ] = '\0'; printf( "フラグ :%1d\n 時間 :\"%s\" ステータス :", flg, dst_str.dsc$a_pointer ); switch ( ret_status ) { case SS$_NORMAL: printf( "SS$_NORMAL" ); break; case LIB$_STRTRU: printf( "LIB$_STRTRU" ); break; } putchar( '\n' ); } }
JLB$DEV_KANJI
<形式>
<引数>
device-name | ||
---|---|---|
JLB usage | :デバイス名 | |
type | :文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し |
<戻り値>
ret-status | 1 : 漢字端末 |
0 : 漢字端末ではない |
JLB$DEV_KANJI_IN
<形式>
<引数>
device-name | ||
---|---|---|
JLB usage | :デバイス名 | |
type | :文字列 | |
access | :入力のみ | |
mechanism | :Descriptor渡し |
<戻り値>
ret-status | 1 : 漢字入力端末 |
0 : 漢字入力端末ではない |
8888888888888888888888888888888888
JSY$RMS_GET_ENCODING
<形式>
<引数>
src-str | ||
---|---|---|
JLB usage | :コンバータ名の出力領域の先頭を指すポインタ | |
type | :文字列 | |
access | :出力のみ | |
mechanism | :Value 渡し |
src-len | ||
---|---|---|
JLB usage | :コンバータ名のバイト長 | |
type | :Longword | |
access | :出力のみ | |
mechanism | :Reference 渡し |
<戻り値>
ret-status | |
---|---|
SS$_NORMAL | :正常終了 |
SS$_INSFARG | :引数の数が少なすぎる |
SS$_TOO_MANY_ARGS | :引数の数が多すぎる |
JSY$RMS_LIST_ENCODING
全てのコンバータの名前を取得し終えると,戻り値としてSS$_ NOMOREITEMSが返されます。この場合,コンバータ名は返されず, 引数contextも更新されません。
<形式>
<引数>
context | |
---|---|
JLB usage | :コンバータ管理用インデックス |
type | :Longword |
access | :更新 |
mechanism | :Reference渡し |
src-str | |
---|---|
JLB usage | :コンバータ名の出力領域の先頭を指すポインタ |
type | :文字列 |
access | :出力のみ |
mechanism | :Value渡し |
src-len | |
---|---|
JLB usage | :コンバータ名のバイト長 |
type | :Longword |
access | :出力のみ |
mechanism | :Reference渡し |
<戻り値>
ret-status | |
---|---|
SS$_NORMAL | :正常終了 |
RMS$_EXTNOTFOU | :ファイル名コンバータがシステムにインストールされていない |
SS$_BADPARAM | :引数の値が不正である |
SS$_INSFARG | :引数の数が少なすぎる |
SS$_NOMOREITEMS | :これ以上ファイル名コンバータが見つからない |
SS$_TOO_MANY_ARGS | :引数の数が多すぎる |
JSY$RMS_SET_ENCODING
<形式>
<引数>
src-str | |
---|---|
JLB usage | :コンバータ名の先頭を指すポインタ |
type | :文字列 |
access | :入力のみ |
mechanism | :Value渡し |
src-len | |
---|---|
JLB usage | :コンバータ名のバイト長 |
type | :Longword |
access | :入力のみ |
mechanism | :Value渡し |
<戻り値>
ret-status | |
---|---|
SS$_NORMAL | :正常終了 |
RMS$_EXTNOTFOU | :指定されたファイル名コンバータが見つからない |
SS$_ACCVIO | :不正なメモリをアクセスしようとした |
SS$_BADPARAM | :引数の値が不正である |
SS$_INSFARG | :引数の数が少なすぎる |
SS$_TOO_MANY_ARGS | :引数の数が多すぎる |