找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 989|回复: 5

[问题] 下面程序中的关键字输入该怎么用?

[复制链接]
发表于 2002-1-24 16:06:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
CODE:

(setq key "y")
  (while (= key "y")
      .......
      (initget 1 "y n")
      (setq key(getkword "\n需修改风口行、列距吗?(y or n)"))
      
      (if (= key nil)
          (setq key n)
      )
      
  )
该段程序中要求输入关键字key为"y"或"n"
当直接回车时要求关键字为"n"(也就是不修改),可在此段程序中却不起作用,
应该如何改法?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-1-26 00:25:03 | 显示全部楼层
(getkword [msg])

有效的关键词必须在 getkword 呼叫之前以initget 函数来设定。使用者不可输入另一个 AutoLISP 表示式来响应 getkword 的要求。

自变量

msg

要提示使用者所显示的字符串;如果省略的话,getkword 不会显示任何提示的讯息。

传回值

代表使用者输入关键词的字符串,或nil, 如果未输入任何关键词而按下 ENTER 键。函数传回 nil 的另一个情况是未呼叫执行 initget建立一个或以上的关键词。
如果使用者输入一个无效值的关键词,getkword 会显示警告讯息并提示使用者再试一次。

范例

下列的范例显示 initget 起始呼叫设定关键字符串列 (Yes 及 No) ,并且不允许输入空值 (位值等于 1) ,然后呼叫 getkword:

指令:(initget 1 "Yes No")

nil

指令:(setq x (getkword "Are you sure? (Yes or No) "))
Are you sure? (Yes or No) yes

"Yes"

下列的序列说明如果使用者以无效的输入来响应getkword  会有什么结果:

指令:(initget 1 "Yes No")

nil

指令:(setq x (getkword "Are you sure? (Yes or No) "))
Are you sure? (Yes or No) Maybe
Invalid option keyword.
Are you sure? (Yes or No) yes

"Yes"

使用者的响应不是由之前 initget 所定义的关键词,因此 getkword 发出错误讯息并以 msg 自变量中提供的字符串再次提示使用者。

CODE:

(setq key "y")
(while (= key "y")
.......
(initget  "y n") ;修改
(setq key(getkword "\n需修改风口行、列距吗?(y /n)"))
(if (= key nil)
(setq key "n")  ;修改
)
)


:9
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-1-26 13:46:44 | 显示全部楼层
关键是 (initget 1 "Yes No") 中的 "1" 不接受空值
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-8 14:18:53 | 显示全部楼层
我需要的效果也是向1楼的一样的,但是至今还找不到合适的办法,请高手赐教!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-8 15:03:36 | 显示全部楼层
(initget 128 "Yes No")
(if (= key nil)
(setq key "N")
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2006-12-8 16:54:02 | 显示全部楼层
本贴已讨论完毕。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 19:29 , Processed in 0.241067 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表