Лучший способ скопировать повторяющиеся n байтов в массиве строк в VB - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть строка данных (20 байтов), например [00 01 02 03 04 05 06 07 08 09 10 11 12 13 A0 AA BB B0 B1 B0]

Каков наилучший практический способ копировать каждые четыре байта с помощью array.copy?

есть ли другой способ быстрее и проще?

Мой конечный результат будет выглядеть примерно так:

Dim A(3) As String = [00 01 02 03]
Dim A1(3) As String = [04 05 06 07]
.
.
Dim A4(3) As String = [BB B0 B1 B0]

Спасибо заранее!

1 Ответ

1 голос
/ 02 апреля 2020

Лучший? Для обсуждения. Вот один из подходов:

String.Split - ваш друг. Кроме того, я рекомендую перегрузку Array.Copy , где вы можете выбрать sourceIndex.

    Dim theString As String = "00 01 02 03 04 05 06 07 08 09 10 11 12 13 A0 AA BB B0 B1 B0"

    Dim fullArray As String() = theString.Split(" ")

    Dim A(3), A1(3), A2(3) As String

    Array.Copy(fullArray, 0, A, 0, 4)
    Array.Copy(fullArray, 4, A1, 0, 4)
    Array.Copy(fullArray, 8, A2, 0, 4)

Но я повторяю @ Marcucciboy2: больше информации полезно для того, что вы хотите сделать. Из вашего вопроса не очевидно, является ли строка данных действительно строкой; Я сделал вывод из построенных вами массивов, но я могу ошибаться. Быть максимально полным с образцом кода полезно, поэтому мы можем увидеть полный контекст.

...