Как разбить строку на пары - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу разбить попарно следующую строку.С текущим кодом я могу только разбить строку на отдельные символы.

Sub SplitinPair()
Dim str

    str = "5C61AA79"
    str = StrConv(str, vbUnicode)
    str = Left(str, Len(str) - 1)

    Debug.Print str
End Sub

Текущий вывод -

5 C 6 1 A A 7 9

, и желаемый вывод, который я ищу, выглядит следующим образом:

5C 61 AA 79

Как это сделать?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Этот метод предполагает четное количество символов, что было бы в случае с шестнадцатеричными парами.Если есть вероятность, что вы можете встретить набор символов с нечетным номером, добавьте элемент управления ошибкой.

Option Explicit

Sub SplitinPair()
    Dim str, tmp As Variant, i As Long

    str = "5C61AA79"
    str = StrConv(str, vbUnicode)

    tmp = Split(Left(str, Len(str) - 1), Chr(0))
    str = vbNullString

    For i = LBound(tmp) To UBound(tmp) Step 2
        str = str & tmp(i) & tmp(i + 1) & Space(1)
    Next i

    str = Trim(str)

    Debug.Print str
End Sub
0 голосов
/ 12 февраля 2019

Одним из вариантов будет простой цикл:

Private Sub SplitinPair()
   Dim str As String
   Dim str2 As String
   Dim i As Integer

   str = "5C61AA79"

   For i = 1 To Len(str) Step 2
      str2 = str2 & Mid(str, i, 2) & " "
   Next

   Debug.Print str2
End Sub
...