906 发表于 2007-9-27 15:32:42

删除和添加支持路径

您好,
在下面的示例中,我只是根据需要删除和添加支持路径
我遇到的问题是,如果我添加一个路径(即NewPath(0)=“C:\”)
那么如果我要手动删除选项文件中的新路径,请再次运行宏,
并从宏中删除该路径(即NewPath(0)=“”)
,它仍会写入新路径,在上面的例子中是C:\
我能想到的唯一一件事是,有一个变量保持在该路径上,我怀疑它是currpath,但我不确定
马克
Sub DeleteAndAddFileSearchPaths()
'DeletePaths
Set WshNetwork = CreateObject("WScript.Network")
Username = WshNetwork.Username
Set Preferences = ThisDrawing.Application.Preferences
CurrPaths = Preferences.Files.SupportPath
On Error Resume Next
'Paths you want to delete
DeletePath(0) = "I:\Path\Path"
DeletePath(1) = "K:\Path\Path"
DeletePath(2) = ""
DeletePath(3) = ""
DeletePath(4) = ""
               
               
For Dpcount = 0 To 5
CurrPaths = Replace(CurrPaths, DeletePath(Dpcount), "", 1, vbTextCompare)
Next Dpcount
Preferences.Files.SupportPath = CurrPaths
'Add Paths
NewPath(0) = ""
NewPath(1) = ""
NewPath(2) = ""
NewPath(3) = ""
NewPath(4) = ""
For Pcount = 0 To 5
'Paths you want to add
If NewPath(Pcount)0 Then
Allpaths = Allpaths & ";" & CurrPaths & ";" & NewPath(Pcount)
End If
Next Pcount
Preferences.Files.SupportPath = Allpaths
End Sub

**** Hidden Message *****

何方 发表于 2007-9-27 15:41:26

我不知道这是否会有帮助,但我对我正在寻找的主要路径使用1个字符串,即strMainPath="c:\PF\Autocad\fonts; c:\PF\Autocad\support; etc; etc",然后在启动时添加我想要的路径。我还使用Instr()搜索现有路径以检查是否需要添加额外的路径。

佣兵工会 发表于 2007-9-27 15:55:17

strMainpath=Application.Preferences.Files.SupportPath
instr(1,Application.Preferences.Files.SupportPath ,“Data”,vbTextCompare ) 将返回找到它的位置,因此您可以使用 IF 语句来确定是否需要添加其他路径

无敌水世界 发表于 2007-9-27 16:03:51


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

天杉希华 发表于 2007-9-27 16:10:33

当应用程序完成或失去作用域时,Newpath应该清除。你使用了多少条路径,数组是必要的吗?我问的原因是,上次我使用数组时,我遇到了一个类似的问题,Keith告诉我我不能做我想做的,因为数组是有限的。不过,我正在重新设置,所以可能是一样的。至于将其设置为空,Newpath(0)=" " ?
编辑注意该设置中的空格

黑衣长发的空间 发表于 2007-9-27 16:11:05

或者也许Newpath=Null ?

蒲飞 发表于 2007-9-27 16:19:41

它只返回您搜索的字符串的位置。我在supportpath中查找单词DATA,“D”是字符串中的第89个字母。因此,您使用<pre>IF Not Instr(1,path,"STRyouARElookingFOR",vbtextcompare) > 0 then
AddPath   
Else
DoNothing
End If

铁皮氧吧 发表于 2007-9-27 16:22:02

从帮助文件
如果您不知道,如果您输入InStr,突出显示它并点击F1,它将为您提供我正在引用的页面。

湖水王道 发表于 2007-9-27 17:11:17


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

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

北京顽主吧 发表于 2007-9-27 17:19:44

是的,我听说过它,但从未使用过它。 我不知道它在VBA中是否可用。 我通常使用Left()Mid()和Right()来拆分我的字符串
页: [1] 2
查看完整版本: 删除和添加支持路径