永发信息网

lisp语言对列表排序问题,使用lisp或vl-lisp求大师指点,谢谢!

答案:1  悬赏:40  手机版
解决时间 2021-02-27 10:31
filelist ‘(“A-S01--1.DWG” "A-S01--12.DWG" "A-S01--11.DWG" "A-S01--2.DWG" "A-S02--1.dwg" "B-S01--1.DWG" "B-S02--1.dwg" )《其中字符A,B分别代表某字符串,不对A和B排序。只对S后的排序。》
要求排序后:(“A-S01--1.DWG” "A-S01--2.DWG" "A-S01--11.DWG" "A-S01--12.DWG" "A-S02--1.dwg" "B-S01--1.DWG" "B-S02--1.dwg" )
最佳答案
(defun c:test()
(setq sjb '( "A-S01--12.DWG" "A-S01--1.DWG" "B-S02--1.dwg"
"A-S01--11.DWG" "A-S01--2.DWG" "A-S02--1.dwg"
"B-S01--1.DWG"
)
jgb nil
)
(foreach zb sjb
(setq n1 (vl-string-search "--" zb)
n2 (vl-string-search "." zb)
zfc1 (substr zb 1 n1)
zfc2 (read (substr zb (+ n1 3) (- n2 n1 2)))
pdb (assoc zfc1 jgb)
)
(if pdb
(setq jgb (subst (list zfc1 (cons (list zfc2 zb) (cadr pdb))) pdb jgb))
(setq jgb (cons (list zfc1 (list (list zfc2 zb))) jgb))
)
)
(setq jgb (vl-sort jgb '(lambda(x1 x2) (< (car x1) (car x2))))
fhzb nil
)
(foreach zb jgb
(setq zb2 (vl-sort (cadr zb) '(lambda(x1 x2)(< (car x1) (car x2))))
zb2 (mapcar 'last zb2)
)
(if fhzb
(setq fhzb (append fhzb zb2))
(setq fhzb zb2)
)
)
(princ "\n排序结果:")(princ fhzb)
(princ)
)

测试:
命令: test
排序结果:(A-S01--1.DWG A-S01--2.DWG A-S01--11.DWG A-S01--12.DWG A-S02--1.dwg
B-S01--1.DWG B-S02--1.dwg)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
三星苹果哪个掉价快
几只白色LED灯泡(发光二极管)串在一起可以
被脱毛膏沾到的衣服用什么洗掉
襄城县华瑞医疗器械有限公司地址在哪,我要去
关于噬菌体侵染细菌。。。。
已知三个同心圆的半径分别为r1,r2,r3,且r1
通体喷墨砖有什么持点
金海岸洗浴地址在什么地方,想过去办事
忠县永峰到马灌中途有没有一个叫人头寨的地方
红米手机怎么硬格
谁有韩剧信义的百度云链接,谢谢!
健之佳健康药房龙舟路店地址有知道的么?有点
2011年7月杨恒均著的新书《黑眼睛看世界:一
重庆沙坪坝到武隆,做公交怎么去?要多久啊?
爱玛电动车枭威SU旗舰版60v30Ah价格多少
推荐资讯
为什么奥运会游泳没有“狗刨”姿势比赛?
滑轮组将物体完全提出水面后,滑轮组的机械效
梦幻西游手游 请注意 是手游 不是端游 魔王寨
下列物质在生产、生活中的应用与所列出性质不
电视剧天蝎女演员
真空压缩袋收纳棉被会破坏棉纤维结构吗?天蚕
靖远县东盛汽车配件经销部怎么去啊,有知道地
铬钢热处理怎么才硬而且不脆?
阴树脂有什么特性
手机uc浏览器打不开图片
汉庭酒店沧州盐山店地址在哪,我要去那里办事
超级群英传貂蝉装备技晕一百和一百五十效果一
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?