Código (vb) [Seleccionar]
Private Static Function kGetNums(ByVal s As String) As String
Dim bv(0) As Byte
Dim pbv As Long
Dim rps As Long
Dim i As Long
Dim b As Byte
Dim w As Long
kGetNums = s
If pbv = 0 Then pbv = VarPtr(bv(0))
rps = StrPtr(kGetNums) - pbv
For i = 0 To LenB(kGetNums) Step 10
b = bv(rps + i + 0)
If b >= &H30 Then
If b <= &H39 Then
bv(rps + w) = b
w = w + 2
End If
End If
b = bv(rps + i + 2)
If b >= &H30 Then
If b <= &H39 Then
bv(rps + w) = b
w = w + 2
End If
End If
b = bv(rps + i + 4)
If b >= &H30 Then
If b <= &H39 Then
bv(rps + w) = b
w = w + 2
End If
End If
b = bv(rps + i + 6)
If b >= &H30 Then
If b <= &H39 Then
bv(rps + w) = b
w = w + 2
End If
End If
b = bv(rps + i + 8)
If b >= &H30 Then
If b <= &H39 Then
bv(rps + w) = b
w = w + 2
End If
End If
Next i
bv(rps + w) = 0
End Function
Deberías probar la velocidad de los códigos en unas 10000 ejecuciones... ya que ahí es donde se ve mejor la diferencia de velocidades