拆分文字
你好我想从列表中拆分单词(包括coma),并为每个拆分的单词创建变量
Example: "1,221866.070,1937463.651,611.892,A1"
want to split like this
"1"
"221866.070"
"1937463.651"
"611.892"
"A1"
等待您的回复。。。。
:(:(:(
甘尼什·谢蒂 戈多夫卡。拆分“文字”很简单。像这种情况下,“单词”的数量总是5吗?如果没有。这就是问题的开始,变量名是什么?每次都不同?
样品
(defun _delFinder(str md / d l str)
(while (setq d (vl-string-position md str nil T))
(setq l (cons (substr str (+ 2 d)) l)
str (substr str 1 d)))
(cons str l)
)
(setq str "1,221866.070,1937463.651,611.892,A1")
(setq tovar (_delfinder str 44) cnt 0)
(foreach words tovar
(set (read (strcat "Var" (itoa (setq cnt (1+ cnt))))) words))
var1->“1”
var2->“221866.070”
var3->“1937463.651”
var4->“611.892”
var5->“A1”
但是,您可以不使用变量名,直接从列表中完成任务。 我们可以通过分配收集/拆分的“文字”的真实值来进一步实现这一点
(foreach words tovar
(set (read (strcat "Var" (itoa (setq cnt (1+ cnt)))))
(if (numberp (setq num (read words))) num words)))
var1->1
(var1型)INT
var2->221866.070
(var2型)REAL
var3->1937463.651
(var3型)REAL
var4->611.892
(var4型)REAL
var5->“A1”
(var5型)STR
HTH公司 你好
晚会有点晚了,但总比什么都没有好
用法示例。。。
(_StepThrough "1,221866.070,1937463.651,611.892,A1") 稍微好一点。。。。
(defun _StepThrough (lst / chars integer position values variables)
;;; Tharwat 19. May. 2012 ;;;
;;; divide a list of strings that contain commas within ;;;
(if (eq (type lst) 'STR)
(setq chars (vl-string->list lst)))
(if (eq (car chars) 44)
(setq lst (substr lst 2 (strlen lst))))
(if (eq (last chars) 44)
(setq lst (substr lst 1 (1- (strlen lst)))))
(setq lst (strcat lst ",") integer 0)
(while (setq position (vl-string-search "," lst 0))
(if (setq values (cons (set (read (strcat "a" (itoa (setq integer (1+ integer)))))
(substr lst 1 position)
)
values
)
)
(setq variables (cons (strcat "a" (itoa integer)) variables))
)
(setq lst (substr lst (+ position 2) (strlen lst)))
)
(print (reverse variables))
(print (reverse values))
(princ)
)
我刚刚注意到OP的屏幕名称:CAD之神。有人会认为CAD之神会知道所有的答案。
好吧,这也可能是一个对卡德·古夫(cadd goof)的字谜,不要冒犯,戈多夫·卡德(godofcad),我们只是在“偷懒”
随便。“文字”似乎是测量点的标签\坐标\描述。然后,就像我之前建议的那样,直接从列表中写出(我猜是属性)值,这将消除将每个值赋给变量的需要
(foreach words (_delfinder str 44)
........;<-- your code here
)
我真的很抱歉我提到我的cp名为godofcad
我的avtar是lisp。。。对不起其他人
我今天要结帐
:( 通过将命令调用替换为层、文本和点的函数entmake(x),可以改进代码。
你为什么要这么做?我以前说过。别生气,会员们只是在装傻,仅此而已
只工作不玩耍,戈多夫卡会变傻。。。。
油箱u pBe。。。隐马尔可夫模型。。。。。Tats ok。。。。
我不会感到难过,也不会关闭我的帐户
坦克为您提供支持
:):):):)
页:
[1]
2