我也尝试着做了一个,请各位老师指点
(defun srtnum-lst (ab )
(defun srtnum ( a / nn num AA)
(if (/= (SUBSTR A 1 1) ".")
(if (numberp (READ (SUBSTR A 1 1)))
(PROGN
(sETQ NN 0)
(sETQ NUM (ATOF A))
(Setq lst (append lst (list num)))
(WHILE (/= (ATOF (SUBSTR A N (sETQ NN (1+ NN)))) NUM))
(setq aa (SUBSTR A (1+ Nn)))
)
(Setq aa (SUBSTR A 2 ))
)
(if (and (/= (SUBSTR A 2 1) ".")(= (type (read(SUBSTR A 2 1))) 'int))
(sETQ AA (srtnum (STRCAT "0" a ) ))
(Setq aa (SUBSTR A 2 ))
)
)
AA
)
(setq lst nil)
(SETQ N 1)
(WHILE (> (STRLEN AB) 0)
(sETQ AB (srtnum aB ))
)
)
(srtnum-lst "BM.H0.2W12TT0.4KSE15.Y3E-3PD")
(defun srtnum-lst (ab / lst)
(defun srtnum ( a / nn num AA)
(if (/= (SUBSTR A 1 1) ".")
(if (numberp (READ (SUBSTR A 1 1)))
(PROGN
(sETQ NN 0)
(sETQ NUM (ATOF A))
(Setq lst (append lst (list num)))
(WHILE (/= (ATOF (SUBSTR A N (sETQ NN (1+ NN)))) NUM))
(setq aa (SUBSTR A (1+ Nn)))
)
(Setq aa (SUBSTR A 2 ))
)
(if (and (/= (SUBSTR A 2 1) ".")(= (type (read(SUBSTR A 2 1))) 'int))
(sETQ AA (srtnum (STRCAT "0" a ) ))
(Setq aa (SUBSTR A 2 ))
)
)
AA
)
(setq lst nil)
(SETQ N 1)
(WHILE (> (STRLEN AB) 0)
(sETQ AB (srtnum aB ))
)
lst
)
(srtnum-lst "BM.H0.2W12TT0.4KSE15.Y3E-3PD")