乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: spiker7221

[编程交流] 空格键作为enter键

[复制链接]

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 06:54:24 | 显示全部楼层
是的,我同意,在这种情况下,人们不得不想为什么需要一个允许空间的T。也许有一个Echoget1或只是Echoget更适合这个任务?
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 06:57:41 | 显示全部楼层
很高兴能帮上忙。看起来在你发帖的时候我们还在猜测!我真的不明白这部分:你是说你可能需要更多的帮助?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:01:29 | 显示全部楼层
 
别担心,迈克;我们都开始了(又一次?)在某处
 
 
迈克,你说得太好了;我很乐意帮忙。
 
考虑这个小例子:
  1. (defun c:FOO ( / oldChoice2)
  2. (setq *choice2* (if *choice2* *choice2* "6"))
  3.    
  4. (initget "6 8 10 12")
  5. (if (and (setq oldChoice2 *choice2*)
  6.           (or (setq *choice2*
  7.                      (getkword
  8.                        (strcat "\nFraming size, 2x... [6/8/10/12]"
  9.                                " <"
  10.                                *choice2*
  11.                                ">: "
  12.                        )
  13.                      )
  14.               )
  15.               (setq *choice2* oldChoice2)
  16.           )
  17.      )
  18.     (prompt
  19.       (strcat "\nYou selected: "
  20.               (cond ((= "6" *choice2*) "(2X6)")
  21.                     ((= "8" *choice2*) "(2X8)")
  22.                     ((= "10" *choice2*) "(2X10)")
  23.                     (T "(2X12)")
  24.               )
  25.       )
  26.     )
  27. )
  28. (princ)
  29. )
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:05:42 | 显示全部楼层
对不起,我复制了错误的代码片段。。。代码已修订。
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:06:44 | 显示全部楼层
如果你坚持最初的想法,你应该明确所有的选择:
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:10:39 | 显示全部楼层
我将使用与BlackBox相同的基本方法:
  1. (if (not (member 2xtxt '("6" "8" "10" "12"))) (setq 2xtxt "6"))
  2. (initget "6 8 10 12")
  3. (setq choice2 (getkword (strcat
  4.    "\nFraming size: 2x[6/8/10/12] 2x<" 2xtxt ">: "
  5. )             )         )
  6. (if (= "" choice2) (setq choice2 2xtxt) (setq 2xtxt choice2))
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:14:02 | 显示全部楼层
 
唯一不允许使用2xtxt的方法是,用户手动使用LISP更改它,因此我不介意检查成员。如果这是必要的,并且我不需要来自成员的结果列表元素,为了方便起见,我会使用vl位置。
 
此外,请注意:
 
072212wnjlab6gddulz6m1.png
072213mde6j3jhd12mdpj3.png
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:16:08 | 显示全部楼层
是的,很好,黑匣子。在你能够完成回答之前,我修复了最后一项(在括号外取2倍),但这是一个我没有完全注意到的好问题。我将2xtxt视为一个全局变量,这意味着任何程序都可以改变它,包括OP可能编写的程序,尽管人们希望这种情况永远不会发生。这是一个很长的名字,很不寻常,除非是OP。至于vl位置,恐怕我对VLISP了解得太少,所以不可能想出这个名字。谢谢你的提示。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 07:20:18 | 显示全部楼层
  1. ((lambda (/)
  2.   (initget 0 "6 8 10 12")
  3.   (strcat "2x"
  4.           (setq *choice* (cond ((getkword (strcat "\nSpecify framing size: 2x [6/8/10/12] <"
  5.                                                   (cond (*choice*)
  6.                                                         ((setq *choice* "6"))
  7.                                                   )
  8.                                                   ">: "
  9.                                           )
  10.                                 )
  11.                                )
  12.                                (*choice*)
  13.                          )
  14.           )
  15.   )
  16. )
  17. )
回复

使用道具 举报

22

主题

55

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
110
发表于 2022-7-6 07:22:50 | 显示全部楼层
感谢Blackbox和Neophoible,
代码很好,很紧凑。
 
我的完整例程有3个问题,都使用以下结构。。设置默认值。我可以按enter键或空格键来接受这些默认值,但当我进入最后一个问题时,除非我在命令行中真正键入最终选项,否则它就会爆炸。
 
仅供参考。。。我现在收到一个“错误:错误的参数类型:stringp nil”。这是否意味着存在未重置的变量?
 
谢谢
迈克
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 17:55 , Processed in 0.427675 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表