Преобразование строки - VB (60689)

Узнай цену своей работы

Формулировка задачи:

Есть ли какая нибудь стандартная ф-ия чтоб: из строки : "1роии(.ыа7щ+*/99" получилась строка "1799"

Решение задачи: «Преобразование строки»

textual
Листинг программы
'Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
 
Const max As Long = 10000000
 
Sub main()
    Dim st As String, n&, Ts&
    st = String$(max, " ")
    For n = 1 To max
        Mid$(st, n) = Chr$(Int(Rnd * 256))
    Next
    
    Ts = GetTickCount()
    OnlyNum_v1 st
    Debug.Print GetTickCount() - Ts
 
    Ts = GetTickCount()
    OnlyNum_v2 st
    Debug.Print GetTickCount() - Ts
End Sub
 
 
Function OnlyNum_v1$(s$)
    Dim b() As Byte, i&, n&, nums$
    nums = String$(Len(s), " ")
    b() = s
    For i = 0 To UBound(b) Step 2
        If b(i) > 47 And b(i) < 58 Then
            n = n + 1
            Mid$(nums, n) = Chr$(b(i)) 'Mid$(s, i \ 2 + 1, 1)
        End If
    Next
    OnlyNum_v1 = Mid$(nums, 1, n)
End Function
 
 
Function OnlyNum_v2$(s$)
    Dim b() As Byte, i&, n&, nums$
    nums = String$(Len(s), " ")
    b() = s
    For i = 0 To UBound(b) Step 2
        If b(i) > 47 And b(i) < 58 Then
            n = n + 1
            Mid$(nums, n) = Mid$(s, i \ 2 + 1, 1)
        End If
    Next
    OnlyNum_v2 = Mid$(nums, 1, n)
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы