Kowal 发表于 2022-7-5 15:36:36

Getstring默认值

(getstring (strcat "<" "Test" ">"))
工作原理如图所示。
 

 
是否可以不打印默认值?
就像下面的图片。
 

Aftertouch 发表于 2022-7-5 15:45:03

你在找这个?

(setq thestring (getstring "\nEnter string <TEST>: "))
(if (null thestring)(setq thestring "TEST"))

当没有输入时,该值设置为“测试”。
本部分:

(getstring "\nEnter string <TEST>: ")

只是化妆,也可能是:

(getstring "\nEnter string: ")

Kowal 发表于 2022-7-5 15:49:17

我有一个变量字符串:
(setq a "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz")
 
我想使用函数getstring修改它
(getstring (strcat "<" "Test" ">"))
现在是:
 

 
我想要没有前缀的。
 

 
有可能吗?

Roy_043 发表于 2022-7-5 15:53:01

@科瓦尔:
如果你不想要这个提示,为什么要提供它?

ronjonp 发表于 2022-7-5 15:57:38

如果我理解正确的话,您只是缺少括号:(getstring(strcat“[]”)

Grrr 发表于 2022-7-5 16:01:09

 
很好,罗恩,这对我来说是新的!
也许可以从中得到一个有用的提示:
(cond ((= (setq v (getstring (strcat "[<" a ">]"))) "") a)(v))

ronjonp 发表于 2022-7-5 16:07:47

肯定
 
我经常在getkword中使用这样的内容:
(or *default* (setq *default* "Width"))
(initget (setq options "Arc Length Width"))
(setq *default*        (cond ((getkword (strcat "\nPick an option: ["
                               (vl-string-translate " " "/" options)
                               "] <"
                               *default*
                               ">:"
                       )
             )
              )
              (*default*)
        )
)

Kowal 发表于 2022-7-5 16:13:19

谢谢你,罗恩·琼普。我一直在寻找这样的解决方案。

BIGAL 发表于 2022-7-5 16:15:29

Ronjonp我们错过了一个defun吗?刚刚在命令行上得到了正常的输入。
 
我的0.05美元和多个关键字可以使用dcl列表框方法,只选择一个。dcl需要一个库例程,但基本上需要3行代码。感谢李的列表框。
 

(if (not LM:listbox)(load "ListBoxV1-2.lsp")) ; loads the lisp if not already loaded
(setq lst (list "Stone" "Ceramic" "Plastic"))
(setq ans (nth 0 (LM:listbox "Pick material" lst 1))) ; calls the list box and return item

ronjonp 发表于 2022-7-5 16:18:48

 
没有遗漏一个defun,只是一个简单的例子。您需要将dynmode设置为1才能在光标处获得结果。
页: [1] 2
查看完整版本: Getstring默认值