前へ | 次へ | 目次 | 索引 |
rendition-complement 引数を使用する場合は,display-id 引数を指定しなければなりません。rendition-set 引数と rendition-complement 引数は省略可能で,これらの引数を使用して仮想ディスプレイの各属性を制御することができます。 rendition-set 引数は仮想ディスプレイの特定の属性を設定するのに対し,rendition-complement 引数はこれらの属性を補足します。 rendition-set 引数と rendition-complement 引数の両方に同じビットを指定した場合は,最初に rendition-set 引数が評価され,その後,rendition-complement 引数が評価されます。これら 2 つの引数を組み合わせて使用することにより,ユーザは 1 回のプロシージャ呼び出しで仮想ディスプレイの各属性を制御することができます。各属性で次の変換が可能です。
設定 補足 動作 0 0 属性を省略時の状態に設定する。 1 0 属性を有効にする。 0 1 属性を省略時の逆の状態に設定する。 1 1 属性を無効にする。
terminator-string
VMS 用法: char_string データ型: character string アクセス: write only 受け渡し方: by descriptor
入出力を終了した文字。terminator-string 引数は省略可能であり,終了文字が書き込まれるディスクリプタのアドレスです。terminator-string 引数は,入出力を終了するために押されたキーではなく,実際の終了文字を戻します。character-set
VMS 用法: unsigned_longword データ型: longword (unsigned) アクセス: read only 受け渡し方: by reference
入力される文字の文字集合を指定します(省略可能)。 character-set 引数は入力される文字集合を格納する符号なしロングワードのアドレスです。この引数が省略された場合には,指定された仮想ディスプレイの省略時の文字集合が使用されます。この引数を省略し,かつ仮想ディスプレイが指定されていない場合には, SMG$DEFAULT_CHARACTER_SET 論理名で示される文字集合が使用されます。character-set 引数として次の値を指定できます。
値 文字集合 (コードセット) SMG$C_ASCII ASCII文字集合 SMG$C_SPEC_GRAPHICS DEC特殊文字集合 SMG$C_SUPPLEMENTAL 補助文字集合 1 SMG$C_KANJI DEC漢字文字集合 SMG$C_JIS_KANA JISカタカナ文字集合 SMG$C_SDK Super DEC 漢字コードセット
1DEC 補助文字集合または Latin-1文字集合のいずれか
SMG$DEFAULT_CHARACTER_SET 論理名に定義できる値については, 第 2.2.14 項 の 表 2-2 を参照してください。
SMG$READ_STRING ルーチンは,仮想キーボードから読み込んだ文字列を戻します。 SMG$READ_STRING ルーチンを使用する場合には,ペーストボードと仮想ディスプレイの両方に対して,ディスプレイのバッチ処理を禁止しておかなければなりません。SMG$READ_STRING が読み込んだテキストは,SMG$READ_COMPOSED_LINE を使用して後で再呼び出しできるように保存されます。表示属性の指定はプロンプト(プロンプト文字列が存在する場合)と入力文字のエコー表示の両方に対して適用されます。
SS$_NORMAL 正常終了。 SS$_ABORT 実行中に入出力操作が強制終了されました (SMG$CANCEL_INPUTルーチンによって)。 SS$_CANCEL キューに登録中に入出力操作が取り消されました (SMG$CANCEL_INPUTルーチンによって)。 SMG$_EOF ファイルの最後。 SMG$_ILLBATFNC バッチ処理されるディスプレイからの入力は認められません。 SMG$_INVARG 引数が誤っています。 SMG$_INVCOL カラム番号に誤りがあります。仮想ディスプレイの外部から入力を読み込もうとしています。 SMG$_INVDIS_ID display-id 引数に誤りがあります。 SMG$_INVKBD_ID keyboard-id 引数に誤りがあります。 SMG$_INVKTB_ID key-table-id 引数に誤りがあります。 SMG$_INVMAXLEN 512 より大きい値が最大バイト数として指定されました。 SMG$_WRONUMARG 引数の数が誤っています。 SS$_xxx $QIOW から戻されたエラー。 JSY$_xxx JSY$_xxx から戻されたエラー。 LIB$_xxx LIB$SCOPY_R_DX から戻されたエラー。 RMS$_xxx $GET から戻されたエラー(RMS$_EOF を除く)。 IM$_xxx IMLIB から戻されたエラー。
#1 |
---|
C+ C This DEC FORTRAN example program demonstrates how to use C SMG$READ_STRING. C C This routine creates a virtual display and writes it to the pasteboard. C Data is placed in the virtual display using SMG$PUT_CHARS. C- C+ C Include the SMG definitions. In particular, we want SMG$M_BORDER. C- IMPLICIT INTEGER (A-Z) INCLUDE '($SMGDEF)' CHARACTER*20 TEXT C+ C Create a virtual display with a border using SMG$CREATE_VIRTUAL_DISPLAY. C- ROWS = 7 COLUMNS = 50 STATUS = SMG$CREATE_VIRTUAL_DISPLAY 1 (ROWS, COLUMNS, DISPLAY1, SMG$M_BORDER) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) C+ C Use SMG$CREATE_PASTEBOARD to create the pasteboard. C- STATUS = SMG$CREATE_PASTEBOARD (PASTE1) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) C+ C Create a virtual keyboard by calling SMG$CREATE_VIRTUAL_KEYBOARD. C- STATUS = SMG$CREATE_VIRTUAL_KEYBOARD ( KEYBOARD1 ) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) C+ C Use SMG$PASTE_VIRTUAL_DISPLAY to paste the virtual display C at row 3, column 9. C- STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 3, 9 ) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) C+ C Read a string from the virtual pasteboard using SMG$READ_STRING. C- STATUS = SMG$READ_STRING ( KEYBOARD1, 1 TEXT, 'prompt', 20, , , , , , DISPLAY1 ) IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) END |
SMG$READ_STRING ルーチンを呼び出す前に,この FORTRAN プログラムによって生成される出力は 図 8-35 に示すとおりです。このプログラムは入力を待ちます。カーソルは "prompt" という単語のすぐ後に移動します。
図 8-35 SMG$READ_STRING ルーチンを呼び出す前に生成される出力
SMG$READ_STRING ルーチンを呼び出した後で生成される出力は, 図 8-36 に示すとおりです。
図 8-36 SMG$READ_STRING ルーチンを呼び出した後で生成される出力
Read and Verify a String ルーチンは,一連の文字列を読み込み,検査します。
SMG$READ_VERIFY keyboard-id ,resultant-string ,initial-string ,pricture-string ,fill-character ,clear-character [,prompt-string] [,modifiers] [,timeout] [,placeholder-arg] [,initial-offset] [,word-terminator-code] [,display-id] [,alternate-echo-string] [,alternate-display-id] [,rendition-set] [,rendition-complement] [,input-length] [,character-set]
VMS 用法: cond_value データ型: longword (unsigned) アクセス: write only 受け渡し方: by value
keyboard-id
VMS 用法: identifier データ型: longword (unsigned) アクセス: write only 受け渡し方: by value
キーボード識別子。keyboard-id 引数は,読み込まれる仮想キーボードの識別子を格納した符号なしロングワードのアドレスです。仮想キーボードは SMG$CREATE_VIRTUAL_KEYBOARD ルーチンを呼び出すことにより作成されます。
resultant-string
OpenVMS 用法 char_string データ型 character string アクセス write only 受け渡し方 by descriptor
SMG$READ_VERIFY ルーチンが読み込んだ文字列が書き込まれる出力文字列。 resultant-string 引数は,この出力文字列を示すディスクリプタのアドレスです。initial-string
VMS 用法: char_string データ型: character string アクセス: read only 受け渡し方: by descriptor
入力フィールドの初期文字を格納した入力文字列。initial-string 引数は,入力文字列を示すディスクリプタのアドレスです。picture-string
VMS 用法: char_string データ型: character string アクセス: read only 受け渡し方: by descriptor
入力フィールドがどのようになるかを示す文字列。picture-string 引数は,ピクチャ文字列を示すディスクリプタのアドレスです。picture-string 引数に対して指定できる値については,『『OpenVMS I/O User's Reference Manual』』を参照してください。
character-set に SMG$C_KANJI または SMG$C_SDKを指定する場合には, picture-string には TRA$V_CV_ANY 以外の値は指定できません。
fill-character
VMS 用法: char_string データ型: character string アクセス: read only 受け渡し方: by descriptor
フィル文字。fill-character 引数は,initial-string 引数でフィル文字として使用される文字を格納した文字列を示すディスクリプタのアドレスです。fill-character 引数についての詳しい説明は,『『OpenVMS I/O User's Reference Manual』』を参照してください。
clear-character
VMS 用法: char_string データ型: character string アクセス: read only 受け渡し方: by descriptor
クリア文字。clear-character 引数は,initial-string 引数内の,各 fill-character 引数に対して表示される文字を格納した文字列を示すディスクリプタのアドレスです。clear-character 引数についての詳しい説明は,『『OpenVMS I/O User's Reference Manual』』を参照してください。
prompt-string
VMS 用法: char_string データ型: character string アクセス: read only 受け渡し方: by descriptor
プロンプト文字列。prompt-string 引数は,SMG$READ_VERIFYルーチンの読み込み操作に対するプロンプトとして使用される文字列を示すディスクリプタのアドレスです。これは省略可能な引数です。modifiers
OpenVMS 用法 mask_longword データ型 longowrd (unsigned) アクセス read only 受け渡し方 by reference
修飾子。modifiers 引数は,省略可能な動作を指定するロングワード・ビット・マスクです。定義されているビットは,$QIO 項目リスト・エントリ TRM$_MODIFIERS に対するビットと同じです。これは省略可能な引数です。modifier 引数に対して指定できる値は次のとおりです。
TRM$M_TM_CVTLOW 小文字を大文字に変換します。 ASCII 文字および補助文字集合についてのみ有効です。 TRM$M_TM_NOECHO 入力された文字は画面に表示されません。入力文字列の文字集合としてDEC漢字文字集合とSuper DEC漢字が指定された場合には無視されます。 TRM$M_TM_PURGE 読み込み操作を実行する前に,先読みを可能にするバッファを消去します。 TRM$M_TM_TRMNOECHO 終了文字は入力されません。 TRM$M_TM_NOEDIT 拡張編集機能は禁止されます。入力文字列の文字集合としてDEC漢字文字集合とSuper DEC漢字が指定された場合には,行編集は禁止されません。 TRM$M_TM_NORECALL 行再呼び出し機能は禁止されます。 TRM$M_TM_AUTO_TAB 入力フィールドが満杯になった時点で,入力が終了します。入力文字列の文字集合としてDEC漢字文字集合が指定された場合には無視されます。 TRM$M_TM_R_JUST 入力は右詰めされます。入力文字列の文字集合としてDEC漢字文字集合とSuper DEC漢字が指定された場合には無視されます。
修飾子についての詳しい説明は,『『OpenVMS I/O User's Reference Manual』』のターミナル・ドライバの節を参照してください。TRM$ シンボルは,DEC が提供するシステム・シンボル・ライブラリ内の $TRMDEF マクロ/モジュールによって定義されています。
timeout
OpenVMS 用法 longword_signed データ型 longword (signed) アクセス read only 受け渡し方 by reference
時間切れの値。timeout 引数は,時間切れの値を格納した符号付きロングワードのアドレスです。timeout 引数は省略可能です。 timeout 引数を指定した場合には,時間切れの前に入力されたすべての文字,または終了文字が入力される前に入力されたすべての文字はバッファに書き込まれます。timeout 引数を省略した場合には,終了文字が入力されるまで,文字はバッファに書き込まれます。placeholder-arg
VMS 用法: unspecified データ型: unspecified アクセス: read only 受け渡し方: unspecified
プレースホルダ引数。OpenVMS ターミナル・ドライバは読み込み/検査操作を実行するときに,この引数を無視します。initial-offset
OpenVMS 用法 longword_signed データ型 longword (signed) アクセス read only 受け渡し方 by reference
入力文字列オフセット。initial-offset 引数は,プロンプトを表示した後,入力を待つまでの間に出力されるバイト数 (initial-string 引数からのバイト数) を格納した符号付きロングワードのアドレスです。word-terminator-code
VMS 用法: word_unsigned データ型: word (unsigned) アクセス: write only 受け渡し方: by reference
キー終了文字コード。word-terminator-code 引数は,どの文字またはどのキーが読み込み操作を終了するかを示すコードを SMG$READ_VERIFY ルーチンが書き込む符号なしワードです。キー終了文字コードは SMG$K_TRM_keyname の形式です。キー名については 第 3 章 の 表 3-1 を参照してください。display-id
VMS 用法: identifier データ型: longword (unsigned) アクセス: read only 受け渡し方: by reference
ディスプレイ識別子。display-id 引数は省略可能であり,読み込み操作が実行される仮想ディスプレイの識別子を格納した符号なしロングワードです。複数の仮想ディスプレイが存在する場合には,各仮想ディスプレイにはそれぞれ仮想カーソルの位置が割り当てられています。同時に,現在の物理カーソルの位置に対応する物理カーソル位置が 1 つだけ存在します。display-id 引数を指定した場合には,読み込み操作は,指定された仮想ディスプレイ内の現在の仮想カーソルの位置から開始されます。prompt-string 引数の長さと initial-offset 引数,および入力された文字列の合計は,ディスプレイ内の表示可能なカラム数に制限されます。
alternate-echo-string
VMS 用法: char_string データ型: character string アクセス: read only 受け渡し方: by descriptor
代替エコー表示文字列。alternate-echo-string 引数は,読み込み操作で最初の文字が入力された後にプリントされる文字列です。これは省略可能な引数です。alternate-display-id
VMS 用法: identifier データ型: longword (signed) アクセス: read only 受け渡し方: by reference
代替ディスプレイ識別子。alternate-display-id 引数は, alternate-echo-string 引数がプリントされる仮想ディスプレイの識別子を格納した符号付きロングワードです。これは省略可能な引数です。この引数を指定した場合には,出力はその仮想ディスプレイの現在の仮想カーソルの位置から開始されます。この引数を省略した場合には,display-id 引数の値が省略時の設定として使用されます。display-id 引数を指定しなかった場合には,出力は現在の物理カーソルの位置から開始されます。rendition-set
VMS 用法: mask_longword データ型: longword (unsigned) アクセス: read only 受け渡し方: by reference
属性指定子。rendition-set 引数は省略可能であり,ロングワード・ビット・マスクのアドレスです。このビット・マスク内の各属性が設定されている場合には,ディスプレイ内の対応する属性が設定されます。rendition-set 引数を使用して設定できる属性は次のとおりです。
SMG$M_BLINK 点滅する文字を表示します。 SMG$M_BOLD 通常の輝度より明るい輝度で文字を表示します。 SMG$M_REVERSE 文字を反転表示します。つまり,仮想ディスプレイの省略時の属性と逆の属性を使用して文字を表示します。 SMG$M_UNDERLINE 下線付き文字を表示します。 SMG$M_INVISIBLE 表示されない文字を指定します。つまり,仮想ディスプレイ内に存在していても,ペーストボードに表示されない文字を指定します。 SMG$M_USER1からSMG$M_USER8 ユーザ定義属性を表示します。 rendition-set 引数を使用する場合には,display-id 引数を指定しなければなりません。
rendition-complement
VMS 用法: mask_longword データ型: longword (unsigned) アクセス: read only 受け渡し方: by reference
属性補足指定子。rendition-complement 引数は省略可能であり,ロングワード・ビット・マスクのアドレスです。ビット・マスク内に属性が設定されている場合には,ディスプレイ内で対応する属性が補足されます。rendition-set 引数に指定できる属性はすべて,rendition-complement 引数を使用して補足できます。rendition-complement 引数を使用する場合には, display-id 引数を指定しなければなりません。rendition-set 引数と rendition-complement 引数はどちらも省略可能であり,これらの引数を組み合わせて指定した場合には,ユーザは読み込み操作が実行される仮想ディスプレイの属性を制御できます。 rendition-set 引数は特定の仮想ディスプレイ特性を設定します。それに対し,rendition-complement 引数はこれらの属性を補足します。同じビットが rendition-set 引数と rendition-complement 引数の両方に指定されている場合には,最初に rendition-set 引数が評価され,その後,rendition-complement 引数が評価されます。これらの2つの引数を組み合わせて使用すれば,1 回のプロシージャ呼び出しで各仮想ディスプレイ属性を制御できます。各属性で次の変換が可能です。
設定 補足 動作 0 0 属性を省略時の状態に設定する。 1 0 属性をオンに設定する。 0 1 属性を現在の設定の逆の状態に設定する。 1 1 属性をオフに設定する。
input-length
OpenVMS 用法 word_unsigned データ型 word (unsigned) アクセス write only 受け渡し方 by reference
読み込んだバイト数が書き込まれます。input-length 引数は, SMG$READ_VERIFY ルーチンが読み込んだバイト数が書き込まれる,符号なしワードのアドレスです。character-set
OpenVMS 用法 longword_unsigned データ型 longword (unsigned) アクセス read only 受け渡し方 by reference
入力されるテキストの文字集合。 character-set 引数は,文字集合コードを格納した符号なしマスク・ロングワードのアドレスです。この引数を省略した場合は,SMG$CREATE_VIRTUAL_DISPLAY ルーチンまたは SMG$CHANGE_VIRTUAL_DISPLAY ルーチンで設定された値が使用されます。この引数を省略し,かつ仮想ディスプレイが指定されていない場合には, SMG$DEFAULT_CHARACTER_SET 論理名で示される文字集合が使用されます。character-set 引数として次の値を指定できます。
値 文字集合 (コードセット) SMG$C_ASCII ASCII文字集合 SMG$C_SPEC_GRAPHICS DEC特殊文字集合 SMG$C_SUPPLEMENTAL 補助文字集合 1 SMG$C_KANJI DEC漢字文字集合 SMG$C_JIS_KANA JISカタカナ文字集合 SMG$C_SDK Super DEC 漢字コードセット
SMG$DEFAULT_CHARACTER_SET 論理名に定義できる値については, 第 2.2.14 項 の 表 2-2 を参照してください。
このルーチンは,指定された仮想キーボードから一連の文字を読み込み,そのシーケンスをピクチャ文字列に対して検査します。その後,読み込んだ文字を呼び出し側に戻します。呼び出し側は,終了文字を示すコードを戻すことも指定できます。表示属性の指定はプロンプト(プロンプトが存在する場合)と入力文字列のエコー表示の両方に適用されます。読み込み/検査操作についての詳しい説明は,『『OpenVMS I/O User's Reference Manual』』を参照してください。 SMG$READ_VERIFY ルーチンを使用する場合には,ペーストボードと仮想ディスプレイの両方に対して,ディスプレイのバッチ処理を禁止しておかなければなりません。
SS$_NORMAL 正常終了。 SS$_ABORT 実行中に入出力操作が強制終了されました (SMG$CANDEL_INPUTルーチンによって)。 SS$_CANCEL キューに登録中に入力操作が取り消されました (SMG$CANCEL_INPUTルーチンによって)。 SMG$_DISREQ SMG$READ_VERIFY ルーチンを呼び出したときに,右詰めが指定されました。 display-id 引数は,指定されませんでした。TERMTABLE.EXE からこの漢字ターミナルに対して SCROLL_REVERSE シーケンスが検索されませんでした。 display-id 引数を SMG$READ_VERIFY ルーチンの呼び出しに追加するか,または SCROLL_REVERSE シーケンスを TERMTABLE.EXE に追加してください。 SMG$_EOF ファイルの最後。 SMG$_INVCOL カラム番号の指定に誤りがあります。 SMG$_INVDIS_ID display-id 引数に誤りがあります。 SMG$_INVKBD_ID keyboard-id 引数に誤りがあります。 SMG$_LENNOTEQL picture-string 引数と initial-string 引数の長さが等しくありません。 SMG$_LENMUSONE fill-character 引数と clear-character 引数の長さは 1 でなければなりません。 SMG$_WRONUMARG 引数の数が誤っています。 SS$_xxx $QIOW から戻されたエラー。 JSY$_xxx JSY$ から戻されたエラー。 LIB$_xxx LIB$SCOPY_R_DX から戻されたエラー。 RMS$_xxx $GET から戻されたエラー(RMS$_EOF を除く)。 IM$_xxx IMLIB から戻されたエラー。
前へ | 次へ | 目次 | 索引 |