none
VB.net引号中的变量如何引用 RRS feed

  • 问题

  • 在用VB.net写程序时,用path = Environment.GetFolderPath(Environment.SpecialFolder.Personal)来获得自定义文件夹路径,而在后面调用自定义文件夹中的文件时如obstoredprocessservice.Repository = "file:path\New folder",此时程序无法将path作为变量引用,请问各位应该如何解决呢?
    2012年11月5日 14:04

答案

  • Dim NewStr As String
    Dim strArr() As String
    obstoredprocessservice.Repository = "file:path\New folder"

            If obstoredprocessservice.Repository.Contains("path") = True Then
                strArr = obstoredprocessservice.Repository.Split("path")
                NewStr = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & strArr(1)
            End If


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年11月7日 10:53
  • 我找了一下,看它的文件,obStoredProcessService.Repository是可以給全路徑,為什麼你不可以用"file:C:\Documents and Settings\Administrator\My Documents\New Folder",而非要用
    obStoredProcessService.Repository = file:path\New Folder"?

    Page 13 : http://www.lexjansen.com/pharmasug/2005/applicationsdevelopment/ad05.pdf


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog


    2012年11月9日 6:36

全部回复

  • '尝试这样做:

    Dim path As String = path = Environment.GetFolderPath(Environment.SpecialFolder.Personal) If Not path.EndWith("\") Then path = path & "\" End If path = path & "NewFolder"


    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    2012年11月6日 1:29
    版主
  • 可是会提示说Endwith不是String的成员。

    并且obstoredprocessservice.Repository = "file:path\New folder"这个格式是一定的,如果让path = path & "NewFolder" 那"file:path\New folder"要怎么写呢?


    2012年11月7日 9:58
  • 那你要自已去寫string.replace

    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年11月7日 10:06
  • 可不可以麻烦说的具体一点呢?谢谢啦~
    2012年11月7日 10:26
  • Dim NewStr As String
    Dim strArr() As String
    obstoredprocessservice.Repository = "file:path\New folder"

            If obstoredprocessservice.Repository.Contains("path") = True Then
                strArr = obstoredprocessservice.Repository.Split("path")
                NewStr = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & strArr(1)
            End If


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年11月7日 10:53
  • 非常感谢!

    2012年11月7日 12:29
  • 不好意思~我还是有一点不明白,因为我的代码是要调用My Documents里New Folder里面保存的SAS code

                Dim path As String
                path = Environment.GetFolderPath(Environment.SpecialFolder.Personal)

                obstoredprocessservice.Repository = "file:path\New Folder"
                obstoredprocessservice.Execute("SAS code", String.Format(....)) 你上面的代码是把这个路径赋值给NewStr这个字符串了吗? 那我后面步骤要怎么写呢?

    2012年11月8日 6:36
  • 你好,請問你的obstoredprocessservice.Execute 的 parameter 是什麼用途?
    這個obstoredprocessservice 是自家開發還是網上下載?要知道它的要求和它怎處理才能回答得到你的問題。

    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年11月8日 8:53
  • 这个主要是调用存储的SAS code,obstoredprocessservice.Execute 的 parameter 是将textbox等中的值传递给SAS宏变量以运行后台SAS程序。obstoredprocessservice.Execute("SAS code", String.Format(....)) 这一句是没有问题的

    我的问题是用 path = Environment.GetFolderPath(Environment.SpecialFolder.Personal)获得我的文档的路径之后,在下面 

    obstoredprocessservice.Repository = "file:path\New Folder"这句中无法将path作为一个变量来调用

    我看了您的回答还是有一点不明白,上面的代码感觉最后是生成了两个新的string变量strArr 和NewStr,接下来该怎么做呢?怎样让系统自动将obstoredprocessservice.Repository = "file:path\New Folder"读取为obstoredprocessservice.Repository = "file:C:\Documents and Settings\Administrator\My Documents\New Folder"?

    因为我不是要输出这个路径,我是要用 obstoredprocessservice.Repository = "file:path\New Folder"
                                                        obstoredprocessservice.Execute("SAS code", String.Format(....))这个固定语法来调用程序。

    2012年11月8日 10:49
  • obstoredprocessservice.Repository = "file:path\New Folder"
    這個一定要是"file:path"?
    obstoredprocessservice 怎樣去解講這 file:path?

    所以問題是在obstoredprocessservice,我才會問它是否你自家開發的。


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年11月9日 6:30
  • 应该是一定要"file:path",我也是从网上找的这种方法。
    2012年11月9日 6:35
  • 我找了一下,看它的文件,obStoredProcessService.Repository是可以給全路徑,為什麼你不可以用"file:C:\Documents and Settings\Administrator\My Documents\New Folder",而非要用
    obStoredProcessService.Repository = file:path\New Folder"?

    Page 13 : http://www.lexjansen.com/pharmasug/2005/applicationsdevelopment/ad05.pdf


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog


    2012年11月9日 6:36
  • 我本来是想说怕不同人的电脑,尤其是不同公司的电脑文件的路径不同,如果不行也就只能用全路径了。

    不好意思,关于另外一个帖子里自动添加文件夹的问题还是没有解决,麻烦您过去看一下可以吗?http://social.microsoft.com/Forums/zh-CN/vbasiczhchs/thread/0cc2c05f-e2f4-446c-b8e5-d9a20c137f5a

    2012年11月9日 7:44
  • 我本来是想说怕不同人的电脑,尤其是不同公司的电脑文件的路径不同,如果不行也就只能用全路径了。

    之前的想法方向錯了,那你應該用code去查找這個"不同公司的電腦文件的路徑不同"全路徑,找到後送進給obStoredProcessService.Repository。


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年11月9日 8:25
  • 谢谢啦~我再试试看~
    2012年11月9日 8:31
  • 不用謝,如果還有問題,可以回來告訴我們。

    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2012年11月9日 10:04