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

删除和添加支持路径

您好,在下面的示例中,我只是根据需要删除和添加支持路径
我遇到的问题是,如果我添加一条路径(即NewPath(0)="C: \")
然后,如果要手动删除选项文件中的新路径,请再次运行宏,并从宏中删除该路径(即新路径(0)=&quot")
它仍然会写新的路径,在上面的例子中是C:\
我能想到的唯一一件事是,有一个变量保持在该路径上,我怀疑它是Currpaths,但我不确定
有人能帮我解决这个问题吗
谢谢你,马克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


许愿树 发表于 2007-9-27 15:41:26

我不知道这是否有帮助,但我使用1个字符串作为我正在寻找的主要路径,即strMainPath=“;c: \ PF\Autocad\字体;c: \PF\Autocad\支持;等等etc“;然后在启动时添加我想要的路径 我还使用Instr()搜索现有路径,以检查是否需要添加其他路径。

飞碟 发表于 2007-9-27 15:55:17

strMainpath=Application.Preferences.Files.SupportPath 嘿CM'我不确定Instr()是什么,但听起来很有趣
在我的例子中,我想如果我能在新路径被写入后清除newpaths变量,这将解决它,除非你不能对作为数组的变量说=什么
I'我甚至不确定我可以在字符串变量上使用这种方法
那么,我如何清除newpath变量呢
你觉得这样行吗
谢谢Mark

签名吧水上乐园 发表于 2007-9-27 16:03:51

当应用程序完成或失去作用域时,Newpath应该清除 您使用了多少条路径,需要阵列吗 我问的原因是,上次我使用数组时,我遇到了一个类似的问题,基思告诉我我不能'我不想做什么,因为数组有限 我是雷迪姆'但是,这可能是相同的 至于将其设置为nothing,那么Newpath(0)=“呢&引用&nbsp
请注意该设置中的空白

蛇群 发表于 2007-9-27 16:10:33

或者Newpath=Null?

水贴一族 发表于 2007-9-27 16:11:05

它只是返回您搜索的字符串的位置 我在supportpath中查找文字数据,然后;D“;是字符串中的第89个字母 所以你用了一个IF Not Instr(1,path,"STRyouARElookingFOR",vbtextcompare) > 0 then
AddPath   
Else
DoNothing
End If

菜籽客栈 发表于 2007-9-27 16:19:41

如果您没有'我不知道,如果你输入InStr,高亮显示它并点击F1,它会给你我引用的页面。

宁田の恋 发表于 2007-9-27 16:22:02


是的,先生
我决定继续,只需清除所有正在写入和删除路径的变量'Clear all Path Variables
CurrPaths = Null
DeletePath(0) = Null
NewPath(5) = Null
Allpaths = Null
将变量设置为零(对于obj)和Null(对于字符串)是一个很好的编程习惯;但这是一个很好的例子,说明为什么需要这样做;尤其是“;如果在不关闭项目的情况下反复运行宏。在您关闭项目或将其设置为null或nothing之前,变量必须保留上次写入它的信息(在内存中)
至于InStr函数,这是一个很好的函数,我必须记住这一点,并在某个时候使用它。至于数组,我认为它们非常强大和高效,我从来没有遇到过问题,除非有一次我直接将路径写入注册表
在该VBScipt中,我使用了3个数组和3个工作查找中的2个
对于第三个,我刚刚折叠,最后使用了。regwrite路径(&p)&引用&引用&路径(&P)&引用&引用;路径(&P)&引用&引用
它完成了任务
Keith B.向我解释了关于分裂路径的问题,这很有趣,但我不太确定实现这一点的精确方法,所以我留下了足够好的信息
你听说过斯普利特吗
再次感谢,马克

畅所欲言吧 发表于 2007-9-27 17:11:17

是的,我听说过,但从未用过 我不知道它是否在VBA中可用 我通常使用Left()Mid()和Right()分割字符串

樱吧招人堂 发表于 2007-9-27 17:19:44


啊,是的,它们非常有用,但我认为拆分是在不同的背景下使用的
我会给你一个更好的定义,请记住,如果它可以在VB或VBScripting中使用,你很有可能在VBA中使用它,正如你在我的代码中看到的那样,我经常使用VBScription代码
你对VBScripting做得多吗?微软在他们的网站上有一个html格式的免费用户指南
如果你有VBA,那么VBScripting真的很容易
脚本代码的好处在于,你可以在应用程序中执行Windows(系统)操作,比如将文件从一个位置复制到另一个位置,如果文件存在,则写入文本文件,这非常酷
页: [1] 2
查看完整版本: 删除和添加支持路径