乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 18|回复: 5

[编程交流] 将根部从直接

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 19:42:01 | 显示全部楼层 |阅读模式
新手问题
 
我需要从目录路径中去掉主根。
 
 
 
我使用它来获取路径:
(setq dfil(GetField“目录列表”“”“dwg”2))
(setq文件路径(vl文件名目录dfil))
 
返回例如:“C:\\Blocks\\2dlib\\Cars\\Plan”
 
如何将上述结果转化为:“2dlib\Cars\Plan”
 
去掉“C:\\Blocks\”并且目录之间只有一个反斜杠?
 
 
“C:\\Blocks\\2dlib\\Trees\\Plan”>“2dlib\Trees\Plan”
“C:\\Blocks\\2dlib\\People”>“2dlib\\People”
 
 
非常感谢
扎克旺
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:00:51 | 显示全部楼层
首先,请注意,反斜杠字符是AutoLISP中的转义字符。这意味着使用单个反斜杠为其后的字符赋予另一种含义,例如:
 
\n=新行字符
\t=制表符
\“=双引号字符

 
因此,为了获得单个反斜杠,必须用另一个反斜杠作为反斜杠的前缀,以便将其标记为文字反斜杠而不是转义字符(实际上,您将第一个反斜杠用作转义字符,以赋予第二个反斜杠另一种含义)。
 
因此,在AutoLISP中,两个反斜杠代表一个反斜杠;观察:
  1. _$ (princ "\nThis is a single backslash \")
  2. This is a single backslash \
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:06:34 | 显示全部楼层
关于剥离文件夹,请考虑以下递归函数:
  1. (defun stripfolder ( dir lvl / pos )
  2.    (if (and (< 0 lvl) (setq pos (vl-string-position 92 dir)))
  3.        (stripfolder (substr dir (+ 2 pos)) (1- lvl))
  4.        dir
  5.    )
  6. )

 
举几个例子:
  1. _$ (stripfolder "C:\\Blocks\\2dlib\\Trees\\Plan" 2)
  2. "2dlib\\Trees\\Plan"
  3. _$ (stripfolder "C:\\Blocks\\2dlib\\People" 2)
  4. "2dlib\\People"
  5. _$ (stripfolder "C:\\Blocks\\2dlib\\Trees\\Plan" 1)
  6. "Blocks\\2dlib\\Trees\\Plan"
  7. _$ (stripfolder "C:\\Blocks\\2dlib\\Trees\\Plan" 3)
  8. "Trees\\Plan"
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:20:35 | 显示全部楼层
谢谢Mac先生!
很有魅力!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:33:54 | 显示全部楼层
不客气-我希望解释清楚!
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:47:09 | 显示全部楼层
是的,谢谢你,麦克先生。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 00:58 , Processed in 0.975602 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表