ник: Lukas
Можно выиграть еще несколько процентов, если во входных строках присутствуют не буквенные символы:
Public Function CaseToBin2(strParam As String) As String
Dim N() As Byte
Dim L() As Byte
Dim i As Integer
Const ZERO As String = "0"
Const ONE As String = "1"
CaseToBin2 = String(Len(strParam), ZERO)
Dim intStep As Integer
intStep = LenB("A")
L() = LCase(strParam)
N() = strParam
For i = 0 To UBound(L) Step intStep
If L(i) > N(i) Then Mid$(CaseToBin2, i / intStep + 1, 1) = ONE
Next
End Function
|
Тогда нет необходимости лишний раз MID$-итировать:
?CaseToBin("OsMoR 123 ()")
101011111111
?CaseToBin2("OsMoR 123 ()")
101010000000
На показанном ранее в качестве образца наборе строк выигрыш составил 16%.