1+
(vl-string-right-trim "0" (rtos x)) (setq x 15.0)
(vl字符串右微调“0”(rtos x))
我得到的“1'-3”值需要是15
然后可能需要有条件地将值-->>解析为所需的格式。
也许这将有助于:
(defun FEET (s)
;; © RenderMan, 2011
(substr s 1 (vl-string-search "'" s)))
从字符串中提取英寸:
(defun INCH(s / i)
;; © RenderMan, 2011
(substr s (setq i (+ 2 (vl-string-search "-" s))) (- (strlen s) i)))
示例:
_$ (feet "10'-11\"")
"10"
_$ (feet "10000'-11\"")
"10000"
_$ (inch "10'-11\"")
"11"
_$ (inch "10'-1111\"")
"1111"
_$
HTH公司
(vl-string-right-trim ".0" (rtos x 2)) 也不起作用。
尝试:
命令:(setq x 1510.0)
1510
命令:(vl string right trim.0“(rtos x 2))
"151"
它的格式是“1510.0”还是“1'-3”??? (defun supp0 (str / a )
(setq a (reverse (vl-string->list str)))
(while (= (car a) 48)
(setq a (cdr a))
)
(setq a (if (= (car a) 46)(cdr a) a))
(vl-list->string (reverse a))
)
(补充0“5.40”)
"5.4"
(supp0(rtos 6.4800 2))
"6.48"
(增刊“7.514500”)
"7.5145"
(setq x 1510.0)
(supp0(rtos x 2))
"1510"
哦,接得好,我忽略了vl弦修剪的行为。
快速修复方法是:
(vl-string-right-trim "." (vl-string-right-trim "0" (rtos x 2)))
但这仍然假设DIMZIN设置为除8之外的其他值(其中尾部的零无论如何都会被删除)。
所以这可能更好:
(defun _TrimTrailingZeros ( s )
(if (vl-string-position 46 s nil t)
(vl-string-trim "." (vl-string-right-trim "0" s))
s
)
)
DIMZIN=0
_$ (_TrimTrailingZeros (rtos 1510.0 2))
"1510"
DIMZIN=8
_$ (_TrimTrailingZeros (rtos 1510.0 2))
"1510"
好主意pBe,但DIMZIN=8:
_$ (supp0 (rtos 1510.0 2))
"151" 谢谢你们,这很有效。我知道这就像abc一样简单。。。
现在,我的下一个常规。。。如果我被卡住了,我会再次发布。再次感谢!
页:
1
[2]