Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
ник: Lukas
Function InsertSpaceBetweenGroupSimbols3(ByVal s$) As String Dim i As Long Dim grp As Long grp = 0 For i = Len(s) To 1 Step -1 Select Case Asc(Mid(s, i)) Case 97 To 122, 65 To 90, 192 To 255 'буковки аглицкие, 192 To 255 'русские If grp = 2 Or grp = 3 Then s = Left$(s, i) & " " & Mid$(s, i + 1) grp = 1 Case 48 To 57 'цифирки If grp = 1 Or grp = 3 Then s = Left$(s, i) & " " & Mid$(s, i + 1) grp = 2 Case 32 'пробел grp = 0 Case Else '33 To 47, 58 To 64, 91 To 96, 123 To 126, 127 To 191 ' все остальное If grp = 1 Or grp = 2 Then s = Left$(s, i) & " " & Mid$(s, i + 1) grp = 3 End Select Next InsertSpaceBetweenGroupSimbols3 = s End Function
Public Function Test2() Dim i As Long Dim start As Long Dim finish As Long Dim str As String Const strText As String = "qwe 123ER FG$NNИТТИиреп.88*wert@^ 835rty FGHY^&*567@ апрГШвыЩО789=-=89 6578GHTY uiu561#@$ $4ft r678" Const lngCount As Long = 30000 For i = 1 To lngCount 'разгон процессора str = str Next i start = apiTimeGetTime For i = 1 To lngCount str = InsertSpaceBetweenGroupSimbols(strText) Next i finish = apiTimeGetTime - start Debug.Print "Вариант Анатолия" Debug.Print "Длина строки =", Len(strText) Debug.Print "Кол-во итераций =", lngCount Debug.Print "Время вычисления, ms=", finish Debug.Print "Result ="; str start = apiTimeGetTime For i = 1 To lngCount str = InsertSpaceBetweenGroupSimbols3(strText) Next i finish = apiTimeGetTime - start Debug.Print Debug.Print "Вариант Анатолия +Lukas" Debug.Print "Длина строки =", Len(strText) Debug.Print "Кол-во итераций =", lngCount Debug.Print "Время вычисления, ms=", finish Debug.Print "Result ="; str End Function
Ваше имя:
Пароль:
Сообщение:
Прикрепить:
Для вставки смайлов в текст щелкните по значку.