请教!如何得到list_box选中的多项内容
刚刚开始研究DCL、请教一下各位大神如何得到list_box选中的多项内容、用get_tile得到的是列表中对应元素的多个序号、
现在不知道如何拆分这些序号、来获取列表中对应的内容了
有没有大神能提供一下具体的获取函数、感谢
字符串转表或字符串分割 已空格为分隔符用得到的表去nthlist_box中的数据 飞雪神光 发表于 2023-12-31 20:39
字符串转表或字符串分割 已空格为分隔符用得到的表去nthlist_box中的数据
这个原理我能懂、现在就是不知道具体怎么拆分字符串 (defun str2lst (str del / pos)
(if (setq pos (vl-string-search del str))
(cons (substr str 1 pos) (str2lst (substr str (+ pos 1 (strlen del))) del))
(list str)
)
)
(mapcar '(lambda (x) (nth x '("数据1" "数据2" "数据3" "数据4" "数据5"))) (mapcar 'atoi (str2lst "0 1 2 4" " "))) 飞雪神光 发表于 2023-12-31 20:42
谢谢、这回明白怎么操作了 (defun mkdcl(str / dclF Fid dcl)
(write-line(apply'strcat(if(listp str)str(list str)))
(setq dclF(vl-filename-mktemp nil nil ".dcl")Fid(open dclF "w")))
(close Fid)
(setq dcl(load_dialog dclF))
(vl-file-delete dclF)dcl)
(defun c:tt( / dcl lst l)
(setq dcl(mkdcl'("ABC:dialog{:list_box{key=\"1\";multiple_select=true;}ok_only;}"))
lst'("A""B""C""D""E"))
(new_dialog"ABC"dcl)
(start_list"1")(vl-every(function add_list)lst)(end_list)
(action_tile"accept""(setq l(get_tile\"1\"))(done_dialog 1)")
(if(=(start_dialog)1)
(mapcar(function(lambda(x)(nth x lst)))
(read(strcat"("l")")))))
(read(strcat"("(get_tile list_box_name)")")) llsheng_73 发表于 2024-1-1 13:03
(read(strcat"("(get_tile list_box_name)")"))
谢谢、我现在用的笨方法、直接搜索空格来拆分的 xiaocainiao 发表于 2024-1-1 15:15
谢谢、我现在用的笨方法、直接搜索空格来拆分的
(read(strcat"(" "0 1 5"")"))=>'(0 1 5)
页:
[1]