首页 | 心情日记 | 建站心得 | 编程技术 | 大盘分析 | 股市信息 | 学习园地 | 电脑技巧 | 物流外贸 | 另类其它 | 站长推荐 | 给我留言 | 相册

用户登陆
用户:
密码:
 
不保存保存一天
保存一月保存一年

站点日历
73 2020 - 9 48
  12345
6789101112
13141516171819
20212223242526
27282930


站点统计

最新评论

日志搜索

 标题   内容


1月14日盘后分析 ASP时间函数详解
未知 ASP函数Split实例讲解   [ 日期:2010-01-15 00:33:08 ]   [ 来自:本站原创 ]

海外邮件中继,海外退信中继,美国高速VPS,不限流量VPN,邮局维护和管理,邮件网关,EMOS邮件中继,POSTFIX邮件中继,Winwebmail邮件中继,Winmail邮件中继,DBMail邮件中继,JDMail邮件中继,Exchange邮件中继,MDaemon邮件中继 淘宝店:http://shantan.taobao.com 云邮科技官网:www.yunrelay.com

【字体设置:
[ 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就可以很好做成各种效果。写此文,希望对大家的学习有所帮助,同时也希望各路高手能够指点一二!


暂时没有评论
   发表评论 - 不要忘了输入验证码哦!
作者: 用户:  密码:  我要注册 验证码: 
为防止广告注册机程序,验证码不会自动显示,请点击此处显示或者(刷新)验证码!
评论:

禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
确定发布?
最多可以输入200个字,目前你已经输入了0个字;你今日还可以发表10条评论!
点这里显示QQ表情【隐藏是为了加快网页打开速度】
 
   

CopyRight © 2008-2010 广东金融学院030904班 All Rights Reserved
Powered by www.030904.com