Добрый день, уважаемые господа.
Есть вопрос по CopyMemory, помогите пожалуйста.
Образец для фрагмента, где возникает вопрос:
Private Sub Test()
Dim str As String
Dim num_elem As Long
Dim mas_str() As String, mas_str2() As String
' есть исходный массив
ReDim mas_str(0 To 2)
mas_str(0) = "4,1,2,3"
mas_str(1) = "4,3,1,2"
mas_str(2) = "4,3,2,1"
'есть новый элемент elem, который мне надо поставить в начало нового массива
'а остальная часть второго массива - все элементы из исходного массива mas_str
'начиная с элемента, заданного num_str
elem = "4,2,1,3"
num_str = 1
ReDim mas_str2(0 To UBound(mas_str, 1) - num_str + 1)
CopyMemory mas_str2(1), mas_str(num_str), (Len(elem) + 10) * UBound(mas_str2, 1)
' И вот здесь по моей задумке должны копироваться 2 элемента (размер 34 байт - 2 * string по 7 символов + 10 байт для строки переменной длины , т.е. = 2*(7+10)).
' А копируется только 1 элемент "4,3,1,2"
mas_str2(0) = elem
End Sub
Подскажите, где я неправ?
Есть вопрос по CopyMemory, помогите пожалуйста.
Образец для фрагмента, где возникает вопрос:
Private Sub Test()
Dim str As String
Dim num_elem As Long
Dim mas_str() As String, mas_str2() As String
' есть исходный массив
ReDim mas_str(0 To 2)
mas_str(0) = "4,1,2,3"
mas_str(1) = "4,3,1,2"
mas_str(2) = "4,3,2,1"
'есть новый элемент elem, который мне надо поставить в начало нового массива
'а остальная часть второго массива - все элементы из исходного массива mas_str
'начиная с элемента, заданного num_str
elem = "4,2,1,3"
num_str = 1
ReDim mas_str2(0 To UBound(mas_str, 1) - num_str + 1)
CopyMemory mas_str2(1), mas_str(num_str), (Len(elem) + 10) * UBound(mas_str2, 1)
' И вот здесь по моей задумке должны копироваться 2 элемента (размер 34 байт - 2 * string по 7 символов + 10 байт для строки переменной длины , т.е. = 2*(7+10)).
' А копируется только 1 элемент "4,3,1,2"
mas_str2(0) = elem
End Sub
Подскажите, где я неправ?