【问题标题】:Create (file) string with classic asp VBScript使用经典的 asp VBScript 创建(文件)字符串
【发布时间】:2012-02-16 10:00:04
【问题描述】:

在 .net (C#) 中,我使用它来创建多个文件(名称)字符串。

if (pic == null)
   pic += "filename";
          else
   pic += "~" + "filename";

我不熟悉 ASP.Classic VBScript。 有人可以帮助我了解 ASP.Classic VBScript 中的语法吗?

【问题讨论】:

  • 对不起。我不确定我是否理解这个问题。能详细解释一下吗?

标签: asp-classic vbscript


【解决方案1】:

也许这就是你想要的?

if pic = "" then
    pic = pic & "filename"
else
    pic = pic & "~" & "filename"
end if

埃里克

【讨论】:

    【解决方案2】:

    你可以这样做。

    If IsNull(pik) Then
       pik = pik & "filename"
    Else
       pik = pik & "~" & "filename"
    End If
    

    【讨论】:

    • 在 C# 中,未分配的字符串变量为空。但是在 VBScript 中,变量必须显式分配 Null。这里的pik 变量不太可能是这种情况。在 VBScript 中,任何未分配的变量的值 Empty 被认为等于 "" 和 0。因此 Rico 更接近。
    • 太酷了。我也应该检查 IsEmpty(pik) 。我同意 Rico 的回答更准确。 devx.com/tips/Tip/14197
    • @AnthonyWJones 来自数据库的空值也将是 VBNull。
    【解决方案3】:

    就涉及语法而言,Rico 的答案是正确的,但是经典 ASP 不将 ~ 字符识别为 Web 应用程序根 - 这是 ASP.NET 的新“功能”,在经典 ASP 中没有直接等效项。

    获取根的一种方法是使用这样的函数:

    Function GetApplicationRoot()
        Dim pathinfo, myRegExp
        pathinfo = Request.ServerVariables("PATH_INFO")
        Set myRegExp = New RegExp
        myRegExp.IgnoreCase = True
        myRegExp.Global = True
        myRegExp.Pattern = "^(/\w*/).*" 
        GetApplicationRoot = myRegExp.Replace(pathinfo, "$1")
    End Function
    

    以上内容基于this question中的代码。

    有了这个,完整的答案将是:

    If Len(pic)=0 Then
        pic = "filename"
    Else  
        pic = pic & GetApplicationRoot() & "filename"
    End If
    

    请注意,在 VBScript 中,只有空的数据库值会返回 Null,所有其他字符串都只是空的,这意味着零长度。

    如果pic 来自数据库,请将代码更改为:

    blnNullOrEmpty = False
    If IsNull(pic) Then
        blnNullOrEmpty = True
    Else  
        If Len(pic)=0 Then
            blnNullOrEmpty = True
        End If
    End If
    
    If blnNullOrEmpty Then
        pic = "filename"
    Else  
        pic = pic & GetApplicationRoot() & "filename"
    End If
    

    【讨论】:

    • 我不熟悉 .NET 中的应用程序根目录,但它与 server.mappath("/") 有什么不同,它会为您提供站点根目录的绝对路径?
    • 当您在 .NET 中有这样的链接 URL - ~/myfile.aspx 时,“~”将被翻译到根文件夹,例如在 HTML 源代码中,您将看到 /myroot/myfile.aspx - 在经典 ASP 中没有这样的东西。
    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 2011-12-06
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多