字符串截取函数
作者:admin 日期:2010-01-20
ASP/Visual Basic代码
- '********************************************************************************
- ' 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
评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags:
相关日志: