日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
日本語 OpenVMS
|
目次 | 索引 |
JSY$RMS_VTF7_USER |
VTF-7 コードセットから指定されたコードセットへ,日本語ファイル名の文字コード変換を行います。
ret-status = JSY$RMS_VTF7_USER ( src-str, src-len, [dst-str], [dst-len], out-len, [codeset], [codeset-len])
src-str JSY usage 変換対象文字列 type Byte string access 入力のみ mechanism Reference 渡し src-len JSY usage 変換対象文字列のバイト長 type Longword access 入力のみ mechanism Value 渡し dst-str JSY usage 変換結果出力領域 type Byte string access 出力のみ mechanism Reference 渡し dst-len JSY usage 変換結果出力領域のバイト長 type Longword access 入力のみ mechanism Value 渡し out-len JSY usage 変換結果のバイト長 type Longword access 出力のみ mechanism Reference 渡し codeset JSY usage コードセット名 type Byte string access 入力のみ mechanism Reference 渡し codeset-len JSY usage コードセット名のバイト長 type Longword access 入力のみ mechanism Value 渡し
このルーチンは RMS を使用せずにファイルにアクセスするアプリケーションなどが,日本語ファイル名をサポートするために利用することができます。日本語ファイル名は Windows NT のサポートするファイル名に準拠しているため,一部の文字の変換規則は iconv と異なります。
変換結果出力領域を省略した場合は (引数 dst-str および dst-len がゼロ),変換結果のバイト数のみを out-len に出力します。
変換対象文字列と変換結果出力領域が全く同じアドレスだった場合, JSY$RMS_VTF7_USER は自動的に内部バッファを確保し,正常に変換を行います。しかし変換対象文字列と変換結果出力領域の一部だけが重複していた場合は,結果は保証されません。
コードセット名を省略した場合は (引数 codeset および codeset-len がゼロ),現在のプロセスが使用しているコードセットを自動的に選択します。
ret-status SS$_NORMAL JSY$_STRTRU
現在の日付けおよび時間の入手
ret-status = JLB$DATE_TIME ( dst-str [, flg[, out-len]] )
dst-str JLB usage 出力文字列 access 出力のみ mechanism Descriptor渡し flg JLB usage 時間制の指定 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)」で表示するかを選択します。省略時の設定では「元年」です。
12時間制と24時間制の表記の違いは,以下の例のとおりです。
12時間制の場合平成元年 2月14日 (火) 午後 5時21分 3秒 24時間制の場合平成元年 2月14日 (火) 17時21分 3秒
#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 |
漢字端末かどうかのチェック
ret-status = JLB$DEV_KANJI ( device-name )
device-name JLB usage デバイス名 type 文字列 access 入力のみ mechanism Descriptor渡し
端末が VT80 に設定されているかどうか,または KANJIGEN の SET /OUTPUT=KANJI により出力が漢字に設定されているかどうかをチェックします。
ret-status 1 : 漢字端末 0 : 漢字端末ではない
JLB$DEV_KANJI_IN |
漢字入力端末かどうかのチェック
ret-status = JLB$DEV_KANJI_IN ( device-name )
device-name JLB usage デバイス名 type 文字列 access 入力のみ mechanism Descriptor渡し
端末が KANJIGEN の SET /INPUT=KANJI により,漢字入力に設定されているかどうかをチェックします。
ret-status 1 : 漢字入力端末 0 : 漢字入力端末ではない
目次 | 索引 |
|