  | 
≫  | 
 | 
  
 | 
    
      | 
    
    
    
     
日本語 OpenVMS 日本語ライブラリ 利用者の手引き
  
 
  
 
文字列からの文字の取り出し,およびポインタの更新
 
 
 
形式
char-code = JSY$CH_RNEXT ( char-ptr )
  
 
引数
 
 
| 
char-ptr
 | 
 
|         JSY usage
 | 
文字の1バイト目を指すポインタ
 | 
 
|         mechanism
 | 
Reference渡し
 | 
 
 
  
 
戻り値
 
| char-code
 | 
ポインタが指している文字の文字コード
 | 
 
 
  
 
  
 
文字列への文字の書き込み
 
 
 
形式
JSY$CH_WCHAR ( char-code, char-ptr )
  
 
引数
 
 
| 
char-code
 | 
 
|         JSY usage
 | 
文字コード
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
char-ptr
 | 
 
|         JSY usage
 | 
文字の1バイト目を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
  
 
文字列への文字の書き込みおよびポインタの更新
 
 
 
形式
JSY$CH_WNEXT ( char-code, char-ptr )
  
 
引数
 
 
| 
char-code
 | 
 
|         JSY usage
 | 
文字コード
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
char-ptr
 | 
 
|         JSY usage
 | 
文字の1バイト目を指すポインタ
 | 
 
|         mechanism
 | 
Reference渡し
 | 
 
 
  
 
  
 
文字列からの文字の取り出し,および文字列の終わりのチェック
 
 
 
形式
char-code = JSY$CH_GCHAR ( char-ptr, end-ptr )
  
 
引数
 
 
| 
char-ptr
 | 
 
|         JSY usage
 | 
文字の1バイト目を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
end-ptr
 | 
 
|         JSY usage
 | 
文字列の終わりを示すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| char-code
 | 
ポインタが指している文字の文字コード
 | 
 
|  
 | 
文字列の終わりを越えていた場合は 'FFFF'(16 進)
 | 
 
 
  
 
  
 
文字列からの文字の取り出し,ポインタの更新,および文字列の終わりのチェック
 
 
 
形式
char-code = JSY$CH_GNEXT ( char-ptr, end-ptr )
  
 
引数
 
 
| 
char-ptr
 | 
 
|         JSY usage
 | 
文字の1バイト目を指すポインタ
 | 
 
|         mechanism
 | 
Reference渡し
 | 
 
| 
end-ptr
 | 
 
|         JSY usage
 | 
文字列の終わりを示すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| char-code
 | 
ポインタが指している文字の文字コード
 | 
 
|  
 | 
文字列の終わりを越えていた場合は 'FFFF'(16 進)
 | 
 
 
  
 
  
 
文字列への文字の書き込み,および文字列の終わりのチェック
 
 
 
形式
status = JSY$CH_PCHAR ( char-code, char-ptr, end-ptr )
  
 
引数
 
 
| 
char-code
 | 
 
|         JSY usage
 | 
文字コード
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
char-ptr
 | 
 
|         JSY usage
 | 
文字の1バイト目を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
end-ptr
 | 
 
|         JSY usage
 | 
文字列の終わりを示すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| status
 | 
1 : 文字の書き込みができた場合
 | 
 
|  
 | 
0 : 文字の書き込みができなかった場合
 | 
 
|  
 | 
(end-ptr を越えた)
 | 
 
 
  
 
  
 
文字列への文字の書き込み,ポインタの更新,および文字列の終わりのチェック
 
 
 
形式
status = JSY$CH_PNEXT ( char-code, char-ptr, end-ptr )
  
 
引数
 
 
| 
char-code
 | 
 
|         JSY usage
 | 
文字コード
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
char-ptr
 | 
 
|         JSY usage
 | 
文字の1バイト目を指すポインタ
 | 
 
|         mechanism
 | 
Reference渡し
 | 
 
| 
end-ptr
 | 
 
|         JSY usage
 | 
文字列の終わりを示すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| status
 | 
1 : 文字の書き込みができた場合
 | 
 
|  
 | 
0 : 文字の書き込みができなかった場合
 | 
 
|  
 | 
(end-ptr を越えた)
 | 
 
 
  
 
例
 
 
#include <stdio.h> 
#include <string.h> 
 
#define ENCODE( c )\
 ( ( ( ( c ) & 0xff ) << 8 ) |( ( ( c ) & 0xff00 ) >> 8 ) ) 
 
static void     create_display_string(); 
 
main() 
{ 
    unsigned short int  char_code; 
    char        *char_ptr, 
                *end_ptr; 
    int         status; 
    int         byte_offset = 4; 
    char        string[] = "実行前の文字列"; 
    char        disp_str[32]; 
    extern int  jsy$ch_pnext(); 
 
    char_code = ENCODE( '後' ); 
    char_ptr = string + byte_offset; 
    end_ptr = string + strlen( string ); 
 
    printf( "書き込む文字 :%c%c\n", 
        ( char_code & 0xff00 ) >> 8, char_code & 0xff ); 
    create_display_string( char_ptr, disp_str ); 
    printf( "実行前の文字列 :\"%s\"    実行前の位置の文字 :%s\n", 
        string, disp_str ); 
 
    status = jsy$ch_pnext( char_code, &char_ptr, end_ptr ); 
 
    create_display_string( char_ptr, disp_str ); 
    printf( "実行後の文字列 :\"%s\"    実行後の位置の文字 :%s    ステータス :%1d\n",) 
        string, disp_str, status ); 
} 
 
static void     create_display_string(src, disp) 
char    *src; 
char    *disp; 
{ 
    int nof_byte_char = 1; 
    unsigned char       check; 
 
    check = (unsigned char)(*src); 
    if ( ( 0x0A1 <= check ) && ( check <= 0x0FE ) )     /* 範囲内なら2バイト文字 */
        nof_byte_char = 2; 
 
    strncpy( disp, src, nof_byte_char ); 
    disp[ nof_byte_char ] = '\0'; 
} 
 |  
 
  
 
  
 
文字が占めるバイト数の入手
 
 
 
形式
nof-byte = JSY$CH_SIZE ( char-code )
  
 
引数
 
 
| 
char-code
 | 
 
|         JSY usage
 | 
文字コード
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| nof-byte
 | 
文字コードが255以下の場合は1,256以上の場合は2
 | 
 
 
  
 
  
 
文字列が占めるバイト数の入手
 
 
 
形式
nof-byte = JSY$CH_NBYTE ( top-ptr,#nof-char )
  
 
引数
 
 
| 
top-ptr
 | 
 
|         JSY usage
 | 
文字列の先頭を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
nof-char
 | 
 
|         JSY usage
 | 
文字数
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| nof-byte
 | 
top-ptrからnof-char文字が占めるバイト数
 | 
 
 
  
 
  
 
文字列に含まれる文字数の入手
 
 
 
形式
nof-char = JSY$CH_NCHAR ( top-ptr,#nof-byte )
  
 
引数
 
 
| 
top-ptr
 | 
 
|         JSY usage
 | 
文字列の先頭を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
nof-byte
 | 
 
|         JSY usage
 | 
バイト数
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| nof-char
 | 
top-ptrからnof-byteバイト内にある文字数
 | 
 
 
  
 
  
 
文字列の検索
 
 
 
形式
address = JSY$POSITION ( src-str, src-len, sub-str, sub-len )
  
 
引数
 
 
| 
src-str
 | 
 
|         JSY usage
 | 
検索される文字列の先頭を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
src-len
 | 
 
|         JSY usage
 | 
検索される文字列のバイト長
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
sub-str
 | 
 
|         JSY usage
 | 
検索する文字列の先頭を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
sub-len
 | 
 
|         JSY usage
 | 
検索する文字列のバイト長
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| address
 | 
検索する文字列が含まれていた場合は文字列の先頭アドレス
 | 
 
|  
 | 
文字列が含まれていなければ 0
 | 
 
|  
 | 
sub-len がゼロの場合は src-str
 | 
 
 
  
 
  
 
英大文字/小文字,全角/半角,ひらがな/カタカナ変換による文字列の比較
 
 
 
形式
status = JSY$STR_EQUAL ( str1, len1, str2, len2, flg )
  
 
引数
 
 
| 
str1
 | 
 
 | 
 
|         JSY usage
 | 
比較対象文字列 1 の先頭を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
len1
 | 
 
 | 
 
|         JSY usage
 | 
比較対象文字列 1 のバイト長
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
str2
 | 
 
 | 
 
|         JSY usage
 | 
比較対象文字列 2 の先頭を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
len2
 | 
 
 | 
 
|         JSY usage
 | 
比較対象文字列 2 のバイト長
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
flg
 | 
 
 | 
 
|         JSY usage
 | 
変換フラグ
 | 
 
|  
 | 
比較の前に行う変換を指定する。
 | 
 
|  
 | 
bit 0
 | 
0 : 英大文字/小文字変換を行う
 | 
 
|  
 | 
 
 | 
1 : 英大文字/小文字変換を行わない
 | 
 
|  
 | 
bit 1
 | 
0 : 全角/半角変換を行う
 | 
 
|  
 | 
 
 | 
1 : 全角/半角変換を行わない
 | 
 
|  
 | 
bit 2
 | 
0 : ひらがな/カタカナ変換を行う
 | 
 
|  
 | 
 
 | 
1 : ひらがな/カタカナ変換を行わない
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| ret-code
 | 
1 : 文字列1と文字列2が等しい
 | 
 
|  
 | 
0 : 文字列1と文字列2が等しくない
 | 
 
 
  
 
  
 
英大文字/小文字,全角/半角,ひらがな/カタカナ変換による文字列の比較
 
 文字列1が文字列2で始まっているかどうかを調べます。
 
 
 
形式
status = JSY$STR_START ( str1, len1, str2, len2, flg )
  
 
引数
 
 
| 
str1
 | 
 
 | 
 
|         JSY usage
 | 
比較対象文字列1の先頭を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
len1
 | 
 
 | 
 
|         JSY usage
 | 
比較対象文字列1のバイト長
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
str2
 | 
 
 | 
 
|         JSY usage
 | 
比較対象文字列2の先頭を指すポインタ
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
len2
 | 
 
 | 
 
|         JSY usage
 | 
比較対象文字列2のバイト長
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
| 
flg
 | 
 
 | 
 
|         JSY usage
 | 
変換フラグ
 | 
 
|  
 | 
比較の前に行う変換を指定する。
 | 
 
|  
 | 
bit 0
 | 
0 : 英大文字/小文字変換を行う
 | 
 
|  
 | 
 
 | 
1 : 英大文字/小文字変換を行わない
 | 
 
|  
 | 
bit 1
 | 
0 : 全角/半角変換を行う
 | 
 
|  
 | 
 
 | 
1 : 全角/半角変換を行わない
 | 
 
|  
 | 
bit 2
 | 
0 : ひらがな/カタカナ変換を行う
 | 
 
|  
 | 
 
 | 
1 : ひらがな/カタカナ変換を行わない
 | 
 
|         mechanism
 | 
Value渡し
 | 
 
 
  
 
戻り値
 
| ret-code
 | 
1 : 文字列1が文字列2で始まっている
 | 
 
|  
 | 
0 : 文字列1が文字列2で始まっていない
 | 
 
 
  
 
 
      |