Особенности работы со строковыми переменными в VB. Часть 2

Листинг 3. Варианты реализация функции InstrRev традиционными средствами Basic

Public Function RevInstrMy(Source$, SubString$) As Integer
	Dim i%, iStart%, iSub%
	
	iSub = Len(SubString$)
	iStart = Len(Source$) - iSub + 1
	For i = iStart To 1 Step -1
	If Mid$(Source$, i, iSub) = SubString$ Then
	RevInstrMy = i: Exit Function
	End If
	Next
End Function


Public Function InstrReverseMy(Source$, SubString$) As Integer
	Dim i%
	Do
		i = InStr(i + 1, Source$, SubString$)
		If i <= 0 Then Exit Do
		InstrReverseMy = i
	Loop
End Function

Public Function RevInstrByteMy(Source$, SubString$) As Integer
	Dim i%, bytArray() As Byte, iBytes%
	
	bytArray = Source$
	iBytes = Len(Source$) * 2 - 2
	For i = iBytes To 0 Step -2
	If Chr(bytArray(i)) = SubString Then
		RevInstrByteMy = i / 2 + 1
		Exit Function
	End If
	Next
End Function

Public Function RevInstrByteMy2(Source$, SubString$) As Integer
	Dim i%, bytArray() As Byte, bytSub As Byte, iBytes%

	bytArray = Source$: bytSub = Asc(SubString)
	iBytes = Len(Source$) * 2 - 2
	For i = iBytes To 0 Step -2
		If bytArray(i) = bytSub Then
			RevInstrByteMy2 = i / 2 + 1
			Exit Function
		End If
	Next
End Function

возврат


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует