网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网络编程 >> ASP教程 >> 正文
最新文章
· FSO 组件asp生成html静态页面碰到缓存
· asp实现长文章自动分页插件
· 在ASP中访问和更新Cookies集合
· ASP错误提示大全
· 学习ASP的几个观点
· ASP用两级联动下拉列表来显示大类和小
· ASP取当前页面地址和参数
· ASP删除记录的同时删除相关图片
· asp将查询结果导出到excel
· ASP批量导入Excel到Access或者Sql Se
热门文章
 化境ASP无组件上传类 - upload_5xs
 一个获取ACCESS数据库表名以及表名
 asp将查询结果导出到excel
 艾恩ASP无组件上传修改版
 ASP批量导入Excel到Access或者Sql 
 ASP读取数据库的Flash+JS图片切换特
 ASP用两级联动下拉列表来显示大类和
 ASP+JS实现网页歌曲连播、点播功能
 使用ASP重启服务器
 asp批量替换access数据库中指定字段
相关文章
asp单篇文章手动分页函数
ASP函数Split实例讲解
来源:百度空间 更新时间:2009/12/18 10:46:15 阅读次数:
字体:[ ] 我要投稿

[ ASP的Split用于拆分字串为数据 ]

以下是引用片段:

dim str
str="游戏,音乐,下载,时尚"
str=split(str,",") ' 以,为拆分关键字

通过split以后

str(0) = "游戏"
str(1) = "音乐"
str(2) = "下载"
str(3) = "时尚"
可以通过for ... next 循环出来的
dim i
for i = 0 to ubound(str)
response.write str(i)
next

在这里 ubound(str)可以得出str这个数组的维数

应用中的例子:

在很多系统开发中,我们必须对数据库的设计尽量简化,尤其是字段过多的情况下。

    可能有些朋友在设计字段时采用text型[以AC为例],而非memo。尤其储存一些重复或类似出现的数据时,觉得建立多个字段颇为麻烦。有没有觉得split能帮我们个忙呢,让我们的数据库尽量简化?相信用过DVBBS的朋友一定有所了解,在7.0版本之前的DVBBS数据库中的表config多数字段的储存是采用数组存储……如果有此想法的话,请看下面我对例子的解释,相信您也可以做到这一点。

  我先介绍一下Split函数的用法:
  返回值数组 = Split("字符串","分割符")
1、 假设变量strURL保存着URL值,如strURL = "ftp://username:password@server",这是我们在IE中登录到FTP上时的URL形式,如果我们想把其中的username和password取出来的话,该怎么办呢?当然解决的方法有许多,在这里我们只介绍用Split来解决的方法。首先,我们找出分割符。我们发现在这个字符串中,username和password之间有个冒号把它们隔开了,所以我们就把这个冒号作为Split函数的"分割符"来分割整个字符串,最后达到取username和password的目的。代码如下:
    strURL = "ftp://username:password@server"
    aryReturn = Split(strURL,":")

  这样我们就把字符串用冒号分割开了,分割后的结果保存在aryReturn中(aryReturn是一个数组)。

  下面我们就来看看这个最终的结果吧,因为Split函数最终返回的是一个数组,所以我们主要就是显示数组中的元素了,就要涉及到一些跟数组有关的函数:IsArray()判断是否数组的函数,LBound()取数组的下标,UBound()取数组的上标。

Response.Write("返回值是否为数组:" & IsArray(aryReturn) & "")
For i = LBound(aryReturn) To UBound(aryReturn)
    Response.Write("返回值数组中的元素[" & i & "]:" & Right(aryReturn(i),Len(aryReturn(i))-2) & "")
Next

通过上面的代码,我们看到字符串被分割成三个部分,

即:"ftp"、"//username"、"password@server"。我们要取username和password需要进一步的处理,我就不多说了,直接给出代码。
  取username的代码:
strUsername = Right(aryReturn(1),Len(aryReturn(1))-2)

  取password的代码:
'取password我们又用到Split函数了,不过这回的分割符是"@"
aryTemp = Split(aryReturn(2),"@")
strPassword = aryTemp(0)
'我们可以顺便取出server
strServer = aryTemp(1)

  分割符可以是一个字符,也可以是一个字符串。如:
aryReturn = Split("ftp://username:password@server,"//' target="_blank">ftp://username:password@server,"//")


2、OKAY!到这里我们对split函数已经有所了解了。我们进行下一个实例:

    现有数据库link.mdb
        表link
    字段:link、linkhref 均为文本类型
   
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("link.mdb")
Sql = "select * from link"
set rs=conn.execute(Sql)
link=split(rs("link"),"|")
linkhref=split(rs("linkhref"),"|")

rs.close
set rs=nothing
conn.close
set conn=nothing

通过上面代码,我们连接了数据库,打开并将其关闭。

'取出储存的数据时我们又用到Split函数了,不过这回的分割符是"|"
link=split(rs("link"),"|")
linkhref=split(rs("linkhref"),"|")

'假如最初数据库中link字段我们设置储存了“1|2|3|4|5” ,linkhref字段存储了“1_1|2_2|3_3|4_4|5_5”

'不难看出数组link、linkhref的下标均为“4”

在我们进行数据更新时,表单value值我们分别取:link(0)、link(1)、link(2)、link(3)、link(4)及linkhref(0)、linkhref(1)、linkhref(2)、linkhref(3)、linkhref(4)

如下代码:
link_1=request.Form("link(0)") & "|" & request.Form("link(1)") & "|" & request.Form("link(2)") & "|" &request.Form("link(3)") & "|" & request.Form("link(4)")

linkhref_1=request.Form("linkhref(0)") & "|" & request.Form("linkhref(1)") & "|" & request.Form("linkhref(2)") & "|" & request.Form("linkhref(3)") & "|" & request.Form("linkhref(4)")

sql_link="update link set link='"&link_1&"',linkhref='"&linkhref_1&"'"
conn.execute(sql_link)

通过上面代码,我们对数据进行了更新数据link、linkhref
link_1、linkhref_1是获取各表单值


好了,相信朋友们看完后就觉得实现这个过程实在太简单!

注意:
  1.一般来说,asp中可以不声明变量,使用Split函数时,如果要声明返回值的变量的话,只能用Dim,而不能用Redim。虽然说其返回是一个数组,应该是用Redim也可以,但在实际使用过程中是不行。不知是怎么回事?
  2. 如果用Split函数来分割一个字符串中并不存在的分割符时,将返回整个字符串,其结果是只有一个元素的数组。

  后话,对于要取一字符串中的某些字符或部分,只要抓住规律,再加上用split就可以很好做成各种效果。写此文,希望对大家的学习有所帮助,同时也希望各路高手能够指点一二!

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号