Asp classic 使用经典asp VBScript创建(文件)字符串

Asp classic 使用经典asp VBScript创建(文件)字符串,asp-classic,vbscript,Asp Classic,Vbscript,在.net(C#)中,我使用它创建一个多文件(名称)字符串 我不熟悉ASP.Classic VBScript。 有人能帮我学习ASP.Classic VBScript中的语法吗?也许这就是你想要的 if pic = "" then pic = pic & "filename" else pic = pic & "~" & "filename" end if 埃里克也许这就是你想要的 if pic = "" then pic = pic &

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

我不熟悉ASP.Classic VBScript。
有人能帮我学习ASP.Classic VBScript中的语法吗?

也许这就是你想要的

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

埃里克也许这就是你想要的

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

埃里克你可以这样做

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

你可以这样做

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

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
以上内容基于中的代码

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

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

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
以上内容基于中的代码

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

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

很抱歉我不确定我是否理解这个问题。你能详细解释一下吗?对不起。我不确定我是否理解这个问题。你能详细解释一下吗?在C#中,一个未赋值的字符串变量是空的。但是,在VBScript中,必须显式分配变量
Null
。这里的
pik
变量不太可能是这种情况。在VBScript中,任何未赋值变量的值
为空
,该值被视为等于“”和0。所以里科更接近了,太酷了。我也应该检查一下IsEmpty(pik)。我同意Rico的回答更准确@数据库中的AnthonyWJones null值也将是VBNull。在C#中,未分配的字符串变量为null。但是,在VBScript中,必须显式分配变量
Null
。这里的
pik
变量不太可能是这种情况。在VBScript中,任何未赋值变量的值
为空
,该值被视为等于“”和0。所以里科更接近了,太酷了。我也应该检查一下IsEmpty(pik)。我同意Rico的回答更准确@数据库中的AnthonyWJones null值也将是VBNull。我不熟悉.NET中的应用程序根目录,但它与server.mappath(“/”)有什么不同,server.mappath(“/”)将为您提供站点根目录的绝对路径?当您在.NET-~/myfile.aspx中有这样的链接URL时,“~”将被转换到根文件夹,例如,在HTML源代码中,您将看到/myroot/myfile.aspx-在经典ASP中没有这样的内容。我不熟悉.NET中的应用程序根,但它与server.mappath(“/”)有何不同,哪个将为您提供网站根目录的绝对路径?当您在.NET-~/myfile.aspx中有这样的链接URL时,“~”将被转换到根文件夹,例如,在HTML源代码中,您将看到/myroot/myfile.aspx-在经典ASP中没有这样的内容。