Getkword
- 構文
- (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 を使わずに自前でキーワードをチェックする必要がある。
関連事項
- initget 関数