两个以前写的ASP字符串截取函数,做小偷程序时经常用到。
首发地址:http://bbs.blueidea.com/viewthread.php?tid=2853887

简单版:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'********************************************************************************
'Function(公有)
'名称 :	盛飞字符串截取函数
'作用 :	按指定首尾字符串截取内容(本函数为从左向右截取)
'参数 :	sContent ---- 被截取的内容
'	sStart ------ 首字符串
'	sOver ------- 尾字符串
'	iType ------- 类型(1:不包含首尾字符串;2:包含首尾字符串;3:包含首、不包含尾;4:不包含首、包含尾)
'********************************************************************************
Function SenFe_Cut(sContent, sStart, sOver, iType)
	Dim iStart, iOver
	iStart = InStr(sContent,sStart)
	iOver  = InStr(iStart+Len(sStar),sContent,sOver)
	If iStart>0 And iOver>0 Then
		Select Case iType
			Case 1 iStart = iStart+Len(sStart)
			Case 2 iOver  = iOver+Len(sOver)
			Case 4 iStart = iStart+Len(sStart):iOver = iOver+Len(sOver)
		End Select
		SenFe_Cut = Mid(sContent,iStart,iOver-iStart)
	Else
		SenFe_Cut = "没有找到您想要的内容,可能您设定的首尾字符串不存在!"
	End If
End Function


高级版:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
'********************************************************************************
'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	'还原默认状态:不包含尾字符串
			Else
				sValue_ = "没有找到您想要的内容,您设定的尾字符串不存在!"
				Exit Sub
			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

转载请注明出处

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自盛飞在线,原文地址《[原][ASP]字符串截取函数
上一篇: 上一篇:
Leave a Reply

Copyright © 盛飞在线 Theme DNSHH by Hang & Ben & S-kias / Wordpress)))