前导零#039;属性中的s
大家好,我目前正在开发一个用于电缆ID标签的块程序。标签末尾使用序列号。它们从001、002、003开始,以此类推。当程序插入每个块时,数字将增加1。我遇到的问题是,插入块后,数字中的前导零没有显示。我原以为改变丁津会管用,但事实并非如此。
请参见下图。
这有一个变量吗?或者我需要使用某种特殊方法来实现这一点吗?
非常感谢您的帮助。
谢谢
您是否尝试过vl string left trim功能?
[编辑]
(vl-string-left-trim "0" "01-N-AV-001")
_$
"1-N-AV-001"
_$
[/编辑] (defun AT:NumFix (s n)
;; Fix number string with leading zeros
;; s - Number string to fix
;; n - Number of characters for final string
;; Alan J. Thompson, 10.29.09
(if (< (strlen s) n)
(AT:NumFix (strcat "0" s) n)
s
)
)
(位于:NumFix“3”4)->“0003” 谢谢RenderMan,但我不熟悉VL。我更倾向于一种普通的解决方案。下面是我当前使用的函数。它适用于前导零除外。
(defun COMM_SEQN ()
(setq ATAG (strcat "01-N-"OUSE"-"SEQN""))
(setq SS (ssget "_l" (list (cons 0 "INSERT")(cons 66 1))))
(if
(/= SS nil)
(progn
(setq INDEX 0)
(setq ENAME (ssname SS INDEX))
(setq ELIST (entget ENAME))
(while
(/= (cdr (assoc 0 ELIST)) "SEQEND")
(setq ELIST (entget ENAME))
(if
(= "ID-TAG" (cdr (assoc 2 ELIST)))
(progn
(entmod (subst (cons 1 ATAG)(assoc 1 ELIST) ELIST))
(entupd ENAME)))
(setq ENAME (entnext ENAME)))))
(princ))
(princ)
艾伦,这很有趣。看起来我需要提供两个参数,一个字符串和一个数字,如果我理解正确的话。 我的错,秃鹰。
艾伦给了你一个很好的选择!(…奖杯架上还有一个,呃,艾伦!)
没问题,我还是很感激你的帮助。 对的第一个是数字字符串,第二个是字符串的所需长度
例如(在:NumFix“1”3处)将产生“001”。
谢谢
好的,随着序列的增加,我需要使用一个条件语句。例如:001-009和010-099,因为当它们到达这些点时,由于前导零更少,这些值会发生变化。 艾伦,你的代码激发了我对这个概念的兴趣
我喜欢跟踪调用:
Entering (PADLEFT&RIGHT "1" "0" 8 5)
Entering (PADLEFT "1" 8 5)
Entering (PADRIGHT "01" 7 5)
Entering (PADLEFT "010" 7 4)
Entering (PADRIGHT "0010" 6 4)
Entering (PADLEFT "00100" 6 3)
Entering (PADRIGHT "000100" 5 3)
Entering (PADLEFT "0001000" 5 2)
Entering (PADRIGHT "00001000" 4 2)
Entering (PADLEFT "000010000" 4 1)
Entering (PADRIGHT "0000010000" 3 1)
Entering (PADLEFT "00000100000" 3 0)
Entering (PADRIGHT "000000100000" 2 0)
Entering (PADLEFT "000000100000" 2 0)
Entering (PADRIGHT "0000000100000" 1 0)
Entering (PADLEFT "0000000100000" 1 0)
Entering (PADRIGHT "00000000100000" 0 0)
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
Result:"00000000100000"
页:
[1]
2