Getkword

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(getkword [msg])


機能
ユーザがキーワードを入力するまで待機(一時停止)し、入力されたキーワードを返す。
有効なキーワードは、getkword 関数を呼び出す前に initget 関数で設定する。getkword 関数の要求に対して、ユーザは別の LISP 式を入力することはできない。
* IJCADでは initget 関数で設定されたキーワードはプロンプトメニューとして表示される。(IJCAD 7 まで)


引数
  • msg : ユーザに表示するプロンプト文字列。省略した場合、プロンプトは表示されない。
コマンドラインでキーワードをクリックできる様になったバージョンからは "[(Y)es / (N)o]" のような形で記述しておくとクリックに対応できる


戻り値
ユーザが入力したキーワードを示す文字列。キーワードを入力せずに[Enter]を押した場合は、nil。この関数は、キーワードを定義する initget 関数を事前に呼び出さなかった場合も、nil を返す。
ユーザが有効なキーワード以外の値を入力した場合、警告メッセージを表示し、再度入力を求める。


サンプル
次の例では、初めの initget 関数の呼び出しでキーワードのリスト(Yes と No)を設定すると同時に、次の getkword 関数呼び出しでの null 入力を禁止している(bits 引数の値が 1)。
(initget 1 "Yes No")
nil
(setq x (getkword "よろしいですか?[はい(Y)/いいえ(N)] "))
よろしいですか?[はい(Y)/いいえ(N)]Y
"Yes"

; 次の例は、getkword 関数に対する応答で、ユーザが無効な入力を行ったときにどうなるかを示している。
(initget 1 "Yes No")
nil
(setq x (getkword "よろしいですか?[はい(Y)/いいえ(N)] "))
よろしいですか?[はい(Y)/いいえ(N)] x
そのようなオプション キーワードはありません.
よろしいですか?[はい(Y)/いいえ(N)]Y
"Yes"

!x
"Yes"

; ユーザの応答が、先の initget 関数で定義されたキーワードの 1 つではなかったため、警告メッセージを表示した後に、msg 引数で与えられた文字列を使用して、ユーザに再度プロンプトが表示された。

(initget 1 "Yes No")
nil
(setq x (getkword "よろしいですか?[はい(Y)/いいえ(N)] "))
よろしいですか?[はい(Y)/いいえ(N)] Y
そのようなオプション キーワードはありません.
よろしいですか?[はい(Y)/いいえ(N)]Y
"Yes"

; initget は全角文字をキーワードとして指定できないので、全角を受け入れる場合は initget を使わずに自前でキーワードをチェックする必要がある。



関連事項