Split函数
描述
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, compare]]])
Split函数语法有如下几部分:
部分 描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(\"\"),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(\" \")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。
设置值
compare参数的设置值如下:
常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
split函数的使用:
For Example:
<%
public namearray
qname="Wang;Zhang;Ning"
response.write qname & "<p><br>"
namearray=split(qname,";") '把qname字符串以分号分开,然后赋给一个数组
max=ubound(namearray)
for counter=0 to max-1
response.write namearray(counter) & "<p><br>"
next
response.write "<hr>"
%>
本例是一个数据库查询的例子,通过Split函数对查询字段进行了切割。
用于想灵活控制查询或开发更深层应用的一个例子。
<%
Dim Conn
Dim Rs
Dim j
Dim i
Set Conn = Server.CreateObject("adodb.connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("Mydatabase\#GuestBook.mdb")
Set Rs = Server.CreateObject("Adodb.RecordSet")
'StrSql="Select * From GuestBook" '等同于下句。
StrSql=SplitText("Title Content"," ","Select "," From GuestBook",",")
Rs.Open StrSql, Conn, 1, 3
Call RsFieldShow("Title Content"," ","标题: 内容:","<br/> <br/>")
'j=Rs.Fields.count
'For i=0 to (j-1)
' Response.Write("第" & i+1 & "个字段名:" & Rs.Fields(i).Name & "<br><br>")
'Next
%>
<%
'ASP中把要查询的字段(Content)以字符串形式传递,附有前缀(PreText)、后缀(LastText)。
'要求前后缀产生数组后,与查询字段的数目相同。
Sub RsFieldShow(Byval Content,Byval SplitMark,Byval PreText,Byval LastText)
On Error Resume Next
EveryString=Split(Content,SplitMark)'获得字符串数组,并赋值。
EveryPreText=Split(PreText,SplitMark)
EveryLastText=Split(LastText,SplitMark)
For i=LBound(EveryString) to UBound(EveryString)
Response.Write EveryPreText(i) & Rs(EveryString(i)) & EveryLastText(i) '输出
Next
End Sub
'按照指定的格式输出字符串。
Function SplitText(Byval Content,Byval SplitMark,Byval PreText,Byval LastText,Byval SplitChar)
On Error Resume Next
Dim StrQ
StrQ=Split(Content,SplitMark) '获得字符串数组,并赋值。
For i=LBound(StrQ) to UBound(StrQ) '利用函数取得数组上限和下限。
SplitText=SplitText & StrQ(i) & SplitChar '进行组合
Next
SplitText=Left(SplitText,Len(SplitText)-1) '去掉最后一个符号。
SplitText=PreText & SplitText & LastText '加上前后缀并返回。
End Function
%>
描述
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, compare]]])
Split函数语法有如下几部分:
部分 描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(\"\"),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(\" \")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。
设置值
compare参数的设置值如下:
常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。
split函数的使用:
For Example:
<%
public namearray
qname="Wang;Zhang;Ning"
response.write qname & "<p><br>"
namearray=split(qname,";") '把qname字符串以分号分开,然后赋给一个数组
max=ubound(namearray)
for counter=0 to max-1
response.write namearray(counter) & "<p><br>"
next
response.write "<hr>"
%>
本例是一个数据库查询的例子,通过Split函数对查询字段进行了切割。
用于想灵活控制查询或开发更深层应用的一个例子。
<%
Dim Conn
Dim Rs
Dim j
Dim i
Set Conn = Server.CreateObject("adodb.connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("Mydatabase\#GuestBook.mdb")
Set Rs = Server.CreateObject("Adodb.RecordSet")
'StrSql="Select * From GuestBook" '等同于下句。
StrSql=SplitText("Title Content"," ","Select "," From GuestBook",",")
Rs.Open StrSql, Conn, 1, 3
Call RsFieldShow("Title Content"," ","标题: 内容:","<br/> <br/>")
'j=Rs.Fields.count
'For i=0 to (j-1)
' Response.Write("第" & i+1 & "个字段名:" & Rs.Fields(i).Name & "<br><br>")
'Next
%>
<%
'ASP中把要查询的字段(Content)以字符串形式传递,附有前缀(PreText)、后缀(LastText)。
'要求前后缀产生数组后,与查询字段的数目相同。
Sub RsFieldShow(Byval Content,Byval SplitMark,Byval PreText,Byval LastText)
On Error Resume Next
EveryString=Split(Content,SplitMark)'获得字符串数组,并赋值。
EveryPreText=Split(PreText,SplitMark)
EveryLastText=Split(LastText,SplitMark)
For i=LBound(EveryString) to UBound(EveryString)
Response.Write EveryPreText(i) & Rs(EveryString(i)) & EveryLastText(i) '输出
Next
End Sub
'按照指定的格式输出字符串。
Function SplitText(Byval Content,Byval SplitMark,Byval PreText,Byval LastText,Byval SplitChar)
On Error Resume Next
Dim StrQ
StrQ=Split(Content,SplitMark) '获得字符串数组,并赋值。
For i=LBound(StrQ) to UBound(StrQ) '利用函数取得数组上限和下限。
SplitText=SplitText & StrQ(i) & SplitChar '进行组合
Next
SplitText=Left(SplitText,Len(SplitText)-1) '去掉最后一个符号。
SplitText=PreText & SplitText & LastText '加上前后缀并返回。
End Function
%>