日期:2010-02-04 浏览次数:21059 次
'********************************************************************************
' 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 iO