乐筑天下

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

删除和添加支持路径

[复制链接]
906

1

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2007-9-27 15:32:42 | 显示全部楼层 |阅读模式
您好,
在下面的示例中,我只是根据需要删除和添加支持路径
我遇到的问题是,如果我添加一个路径(即NewPath(0)=“C:\”)
那么如果我要手动删除选项文件中的新路径,请再次运行宏,
并从宏中删除该路径(即NewPath(0)=“”)
,它仍会写入新路径,在上面的例子中是C:\
我能想到的唯一一件事是,有一个变量保持在该路径上,我怀疑它是currpath,但我不确定
马克
  1. Sub DeleteAndAddFileSearchPaths()
  2. 'DeletePaths
  3. Set WshNetwork = CreateObject("WScript.Network")
  4. Username = WshNetwork.Username
  5. Set Preferences = ThisDrawing.Application.Preferences
  6. CurrPaths = Preferences.Files.SupportPath
  7. On Error Resume Next
  8. 'Paths you want to delete
  9. DeletePath(0) = "I:\Path\Path"
  10. DeletePath(1) = "K:\Path\Path"
  11. DeletePath(2) = ""
  12. DeletePath(3) = ""
  13. DeletePath(4) = ""
  14.                  
  15.                
  16. For Dpcount = 0 To 5
  17. CurrPaths = Replace(CurrPaths, DeletePath(Dpcount), "", 1, vbTextCompare)
  18. Next Dpcount
  19. Preferences.Files.SupportPath = CurrPaths
  20. 'Add Paths
  21. NewPath(0) = ""
  22. NewPath(1) = ""
  23. NewPath(2) = ""
  24. NewPath(3) = ""
  25. NewPath(4) = ""
  26. For Pcount = 0 To 5
  27. 'Paths you want to add
  28. If NewPath(Pcount)  0 Then
  29.   Allpaths = Allpaths & ";" & CurrPaths & ";" & NewPath(Pcount)
  30. End If
  31. Next Pcount
  32. Preferences.Files.SupportPath = Allpaths
  33. End Sub

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

0

主题

11

帖子

4

银币

初来乍到

Rank: 1

铜币
11
发表于 2007-9-27 15:41:26 | 显示全部楼层
我不知道这是否会有帮助,但我对我正在寻找的主要路径使用1个字符串,即strMainPath="c:\PF\Autocad\fonts; c:\PF\Autocad\support; etc; etc",然后在启动时添加我想要的路径。我还使用Instr()搜索现有路径以检查是否需要添加额外的路径。
回复

使用道具 举报

0

主题

5

帖子

3

银币

初来乍到

Rank: 1

铜币
7
发表于 2007-9-27 15:55:17 | 显示全部楼层
strMainpath=Application.Preferences.Files.SupportPath
instr(1,Application.Preferences.Files.SupportPath ,“Data”,vbTextCompare ) 将返回找到它的位置,因此您可以使用 IF 语句来确定是否需要添加其他路径
回复

使用道具 举报

0

主题

7

帖子

6

银币

初来乍到

Rank: 1

铜币
9
发表于 2007-9-27 16:03:51 | 显示全部楼层

嘿CM
我不确定Instr()是什么,但听起来很有趣。
就我而言,我想如果我可以在编写新路径后清除newpath变量,那就可以处理它,除了你不能对作为数组的变量说=什么。
我甚至不确定我可以在字符串变量上使用这种方法???
那么,我如何清除newpath变量呢?
你认为这样可以吗?
谢谢
马克
回复

使用道具 举报

0

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
8
发表于 2007-9-27 16:10:33 | 显示全部楼层
当应用程序完成或失去作用域时,Newpath应该清除。你使用了多少条路径,数组是必要的吗?我问的原因是,上次我使用数组时,我遇到了一个类似的问题,Keith告诉我我不能做我想做的,因为数组是有限的。不过,我正在重新设置,所以可能是一样的。至于将其设置为空,Newpath(0)=" " ?
编辑注意该设置中的空格
回复

使用道具 举报

0

主题

9

帖子

4

银币

初来乍到

Rank: 1

铜币
9
发表于 2007-9-27 16:11:05 | 显示全部楼层
或者也许Newpath=Null ?
回复

使用道具 举报

0

主题

9

帖子

5

银币

初来乍到

Rank: 1

铜币
9
发表于 2007-9-27 16:19:41 | 显示全部楼层
它只返回您搜索的字符串的位置。我在supportpath中查找单词DATA,“D”是字符串中的第89个字母。因此,您使用<pre>
  1. IF Not Instr(1,path,"STRyouARElookingFOR",vbtextcompare) > 0 then
  2. AddPath   
  3. Else
  4. DoNothing
  5. End If
回复

使用道具 举报

0

主题

7

帖子

4

银币

初来乍到

Rank: 1

铜币
7
发表于 2007-9-27 16:22:02 | 显示全部楼层
从帮助文件
如果您不知道,如果您输入InStr,突出显示它并点击F1,它将为您提供我正在引用的页面。
回复

使用道具 举报

0

主题

9

帖子

3

银币

初来乍到

Rank: 1

铜币
9
发表于 2007-9-27 17:11:17 | 显示全部楼层

是的,先生
做到了。
我决定继续并清除所有正在写入和删除路径的变量
  1. 'Clear all Path Variables
  2. CurrPaths = Null
  3. DeletePath(0) = Null
  4. NewPath(5) = Null
  5. Allpaths = Null

将变量设置为空(对于obj)
和Null(对于String)
这是一个很好的编程习惯我通常不这样做,但这是一个很好的例子,说明为什么如果您一次又一次地运行宏而不关闭项目,则需要“特别”完成它。一定是变量保留了最后一次写入它的信息(在内存中),直到您关闭项目或将其设置为null或无。
至于InStr函数,这是一个很好的函数,我必须记住它并在某个时候使用它
至于数组,我认为它们非常强大且非常高效,除了在一种情况下我直接写入注册表的路径外,我从来没有真正遇到过问题。
在那个VBSpse t中,我使用了3个数组和3个工作查找中的2个。
对于第三个,我只是折叠并最终使用了
. regwrite
Path&";"&Path & ";" Path & ";"
它完成了工作。
Keith B.正在向我解释分裂路径,这很有趣,但我不太确定使其工作的确切方法,所以我留下了足够好的东西。
你听说过Split吗?
再次感谢,
Mark
回复

使用道具 举报

0

主题

8

帖子

5

银币

初来乍到

Rank: 1

铜币
9
发表于 2007-9-27 17:19:44 | 显示全部楼层
是的,我听说过它,但从未使用过它。 我不知道它在VBA中是否可用。 我通常使用Left()Mid()和Right()来拆分我的字符串
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 10:24 , Processed in 0.954138 second(s), 72 queries .

© 2020-2025 乐筑天下

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