日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 部:概論
第 1 章:日本語SMG (SMG$)の概要
第 2 章:日本語 SMG の出力操作
第 3 章:日本語 SMG 入力操作
第 4 章:日本語 SMG の高度な機能
第 5 章:フォーリン・ターミナルのサポート
第 6 章:日本語 SMG を使用したプログラム開発
第 7 章:日本語 SMG ルーチンの呼び出しの例
第 2 部:リファレンス・セクション
第 8 章:日本語 SMG リファレンス
コマンド一覧
索引
PDF
OpenVMS ホーム
日本語 OpenVMS

日本語 OpenVMS
日本語画面管理ライブラリ 利用者の手引き


目次 索引




Read Text from Display ルーチンは,仮想ディスプレイから 1 行のテキストを読み込みます。

形式

SMG$READ_FROM_DISPLAY display-id ,resultant-string [,terminator-string] [,start-row] [,rendition-string] [,character-set-string]


戻り値



OpenVMS 用法 cond_value
データ型 longword (unsigned)
アクセス write only
受け渡し方 by value



引数



display-id

OpenVMS 用法 identifier
データ型 longword (unsigned)
アクセス read only
受け渡し方 by reference


テキストが読み込まれる仮想ディスプレイを指定します。display-id 引数は,ディスプレイ識別子を格納した符号なしロングワードのアドレスです。

この引数は SMG$CREATE_VIRTUAL_DISPLAY ルーチンによって与えられます。

resultant-string


VMS 用法: char_string
データ型: character string
アクセス: write only
受け渡し方: by descriptor


SMG$READ_FROM_DISPLAY ルーチンが仮想ディスプレイから読み込んだ情報を書き込む文字列。resultant-string 引数は,文字列が書き込まれる文字列を示すディスクリプタのアドレスです。

terminator-string


VMS 用法: char_string
データ型: character string
アクセス: read only
受け渡し方: by descriptor


逆向き検索を終了する終了文字を格納した文字列。戻される文字列の開始位置を決定するために用いられます。terminator-string 引数は,終了文字の文字列を示すディスクリプタのアドレスです。terminator-string 引数を省略した場合には,逆向き検索は実行されず,戻される文字列はカーソルの現在の位置にある文字から始まります。

start-row


VMS 用法: longword_signed
データ型: longword (signed)
アクセス: read only
受け渡し方: by reference


start-row 引数は,読み込まれる仮想ディスプレイの行番号を格納した,符号付きロングワードのアドレスです。この引数は省略可能です。

rendition-string

OpenVMS 用法 char_string
データ型 character string
アクセス write only
受け渡し方 by descriptor


ビデオ属性を制御するビット・マスク文字列(省略可能)。 rendition-string 引数は,ビット・マスク文字列を示すディスクリプタのアドレスです。ディスプレイ上のテキスト文字列のカラムに対応する属性を指定することができます。この rendition-string 引数で指定できる属性は次のとおりです。

SMG$M_BLINK 点滅文字を指示します。
SMG$M_BOLD 通常より明るい輝度の文字を指定します。
SMG$M_REVERSE 反転表示文字を指示します。つまり,仮想ディスプレイの現在の属性の反対の状態で文字を表示しています。
SMG$M_UNDERLINE 下線付き文字を指示します。
SMG$M_INVISIBLE 表示されない文字を指定します。つまり,文字は仮想ディスプレイ内に存在しますが,ペーストボードには表示されていません。



character-set-string

OpenVMS 用法 char_string
データ型 character string
アクセス write only
受け渡し方 by descriptor


文字集合を示すバイト文字列(省略可能)。 character-set-string 引数は文字集合の文字列を示すディスクリプタのアドレスです。ディスクリプタ中の各バイトの値が,ディスプレイ中のテキスト文字列のバイトに対応する文字集合を示します。この character-set-string 引数に返される値は次の値の組み合せからなります。

文字集合 (コードセット)
SMG$C_ASCII ASCII文字集合
SMG$C_SPEC_GRAPHICS DEC特殊文字集合
SMG$C_SUPPLEMENTAL 補助文字集合 1
SMG$C_KANJI DEC漢字文字集合
SMG$C_JIS_KANA JISカタカナ文字集合
SMG$C_UNKNOWN 未定義文字集合
SMG$C_SDK Super DEC 漢字コードセット


1DEC 補助文字集合または Latin-1 文字集合のいずれか。


説明

SMG$READ_FROM_DISPLAY ルーチンは,指定された仮想ディスプレイの現在の行のすべてのテキストまたは一部のテキストを格納する文字列を戻します。 terminator-string 引数を省略した場合には,現在の行の内容(現在のカラム位置から右端のカラム位置まで)が戻されます。

現在のカラム位置が,全角文字の右半分である場合には,その位置は未定義文字として扱われます。 start-row 引数を指定した場合には,start-row 引数によって指定される行の1カラム目から右端のカラムまでの内容が resultant-string 引数に戻されます。start-row 引数を指定した場合には,terminator-string 引数は無視されます。

terminator-string 引数を指定した場合には,その文字列内の各文字は逆向き検索の終了文字として機能します。つまり,戻される最初の文字列を判断するために使用されます。指定された終了文字がまったく検出されない場合には,検索操作はその行の最初の文字位置で終了します。

線画を読みこむ場合には,装置に依存しない文字 (+, --, |) で戻されます。


戻される状態値

SS$_NORMAL 正常終了。
SMG$_INVDIS_ID display-id 引数に誤りがあります。
SMG$_DSPIN_USE 同じディスプレイへの日本語SMGルーチンコールを中断させた AST ルーチンから,日本語 SMGルーチンが呼ばれました。
SMG$_KBDIN_USE 2 回目または次の読み込み操作で,複数の QIO が同じチャネルを使用しようとしました。
LIB$_INSVIRMEM 仮想メモリが不足しています。
LIB$_INVSTRDES 文字列ディスクリプタに誤りがあります。


#1
C+ 
C This FORTRAN example demonstrates the use of SMG$READ_FROM_DISPLAY. 
C- 
 
C+ 
C Include the SMG definitions. In particular, we want SMG$M_BORDER. 
C- 
 
        IMPLICIT INTEGER (A-Z) 
        INCLUDE '($SMGDEF)' 
        CHARACTER*80 TEXT 
 
C+ 
C Use SMG$CREATE_VIRTUAL_DISPLAY to create the virtual display 
C and give it a border. 
C- 
 
        ROWS = 5 
        COLUMNS = 60 
 
        STATUS = SMG$CREATE_VIRTUAL_DISPLAY 
     1  (ROWS, COLUMNS, DISPLAY1, SMG$M_BORDER) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Create the pasteboard by calling SMG$CREATE_PASTEBOARD. 
C- 
 
        STATUS = SMG$CREATE_PASTEBOARD (PASTE1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Call SMG$PASTE_VIRTUAL_DISPLAY and SMG$PUT_LINE to paste 
C the virtual display and put some text on line 2. 
C- 
 
        STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 2, 10 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        STATUS = SMG$PUT_LINE ( DISPLAY1, ' ' ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        STATUS = SMG$PUT_LINE ( DISPLAY1, 
     1          'This is an example of using SMG$READ_FROM_DISPLAY.' ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Use SMG$READ_FROM_DISPLAY to read line 2 from the virtual 
C display, starting at column 22. 
C- 
 
        STATUS = SMG$SET_CURSOR_ABS ( DISPLAY1, 2, 22 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Search line 2 from column 22 to column 1 for the null string. 
C Since no terminator will be supplied, no "back-searching" will take 
C place. TEXT will be assigned the "value" of the line from 
C column 22 to the rightmost column. 
C- 
 
        STATUS = SMG$READ_FROM_DISPLAY ( DISPLAY1, TEXT ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Put the line of text found into the virtual display at row 4, 
C column 10 by calling SMG$SET_CURSOR_ABS and SMG$PUT_LINE. 
C- 
 
        STATUS = SMG$SET_CURSOR_ABS ( DISPLAY1, 4, 10 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        STATUS = SMG$PUT_LINE ( DISPLAY1, TEXT ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Use SMG$SET_CURSOR_ABS to set the cursor back to line 2, column 22. 
C- 
 
        STATUS = SMG$SET_CURSOR_ABS ( DISPLAY1, 2, 22 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Use SMG$READ_FROM_DISPLAY to search line 2 from column 22 to 
C column 1 for an "f".  Now, "back-searching" will take place. 
C Starting at column 22, "back-track" to column 1 looking for "f". 
C Text will then be assigned the "value" of the line from the 
C present cursor position (where the "f" is, to the rightmost 
C column. 
C- 
 
        STATUS = SMG$READ_FROM_DISPLAY ( DISPLAY1, TEXT, 'f' ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Put the line of text found into the virtual display at row 4, column 10. 
C- 
 
        STATUS = SMG$SET_CURSOR_ABS ( DISPLAY1, 5, 10 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        STATUS = SMG$PUT_LINE ( DISPLAY1, TEXT ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        END 
 

この FORTRAN プログラムによって生成される出力は, 図 8-33 に示すとおりです。

図 8-33 SMG$READ_FROM_DISPLAY ルーチンを呼び出す出力



目次 索引

© 2012 Hewlett-Packard Development Company, L.P.