ASP字符串截取函数,适用于采集程序调用

作者:网络 来源:佚名 更新时间:2009-03-13 16:47:50 点击:
'********************************************************************************
'    function(公有)
'    名称 :   字符串截取函数
'    作用 :    按指定首尾字符串截取内容(本函数为从左向右截取)
'    参数 :    scontent ---- 被截取的内容
'        sstart ------ 首字符串
'        istartno ---- 当首字符串不是唯一时取第几个
'        bincstart --- 是否包含首字符串(1/true为包含,0/false为不包含)
'        istartcusor - 首偏移值(指针单位为字符数量,左偏用负值,右偏用正值,不偏为0)
'        sover ------- 尾字符串
'        ioverno ----- 当尾字符串不是唯一时取第几个
'        bincover ---- 是否包含尾字符串((1/true为包含,0/false为不包含)
'        iovercusor -- 尾偏移值(指针单位为字符数量,左偏用负值,右偏用正值,不偏为0)
'********************************************************************************
public function senfe_cut(scontent, sstart, istartno, bincstart, istartcusor, sover, ioverno, bincover, iovercusor)
    if scontent<>"" then
        dim istartlen, ioverlen, istart, iover, istartcount, iovercount, i
        istartlen = len(sstart)    '首字符串长度
        ioverlen  = len(sover)    '尾字符串长度
        '首字符串第一次出现的位置
        istart = instr(scontent, sstart)
        '尾字符串在首字符串的右边第一次出现的位置
        iover = instr(istart + istartlen, scontent, sover)
        if istart>0 and iover>0 then
            if istartno < 1 or isnumeric(istartno)=false then istartno = 1
            if ioverno < 1 or isnumeric(ioverno)=false then ioverno  = 1
            '取得首字符串出现的次数
            istartcount = ubound(split(scontent, sstart))
            if istartno>1 and istartcount>0 then
                if istartno>istartcount then istartno = istartcount
                for i = 1 to istartno
                    istart = instr(istart, scontent, sstart) + istartlen
                next
                iover = instr(istart, scontent, sover)
                istart = istart - istartlen    '还原默认状态:包含首字符串
            end if
            '取得尾字符串出现的次数
            iovercount = ubound(split(mid(scontent, istart + istartlen), sover))
            if ioverno>1 and iovercount>0 then
                if ioverno>iovercount then ioverno = iovercount
                for i=1 to ioverno
                    iover = instr(iover, scontent, sover) + ioverlen
                next
                iover = iover - ioverlen    '还原默认状态:不包含尾字符串
            end if
            if cbool(bincstart)=false then istart = istart + istartlen    '不包含首字符串
            if cbool(bincover)  then iover = iover + ioverlen        '包含尾字符串
            istart = istart + istartcusor    '加上首偏移值
            iover  = iover + iovercusor    '加上尾偏移值
            if istart<1 then istart = 1
            if iover<=istart then iover = istart + 1
            '按指定的开始和结束位置截取内容
            senfe_cut = mid(scontent, istart, iover - istart)
        else
            'senfe_cut = scontent
            senfe_cut = "没有找到您想要的内容,可能您设定的首尾字符串不存在!"
        end if
    else
        senfe_cut = "没有内容!"
    end if
end function


收集最实用的网页特效代码!