Создание байтового массива с помощью MemCopy, RtlMoveMemory - VB
Формулировка задачи:
Замучался экспериментировать. Помогите, пжлста.
Есть байтовый массив a, как с помощью MemCopy или RtlMoveMemory
создать новый байтовый массив b с значением, например, а(с 100 до 150).
b(0)=a(100):b(1)=a(101): ... :b(50)=a(150)
Решение задачи: «Создание байтового массива с помощью MemCopy, RtlMoveMemory»
textual
Листинг программы
Option Explicit Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" ( _ ByRef Destination As Any, _ ByRef Source As Any, _ ByVal Length As Long) Private Sub Form_Load() Dim a(0 To 150) As Byte Dim lB As Long, uB As Long Dim b() As Byte Dim lShift As Long Dim i As Integer Me.AutoRedraw = True Me.FontName = "Courier New" ' Заполняем исх. массив: lB = LBound(a): uB = UBound(a) For i = lB To uB a(i) = i Next ' Копируем во второй массив со сдвигом в 100 элементов: lShift = 100 ReDim b(lB To (uB - lShift)) CopyMemory b(lB), a(lB + lShift), (uB - lB - lShift + 1) ' Выводим инфу для проверки: Me.Print "LBound(a) = " & lB & ", a(" & LBound(a) & ") = " & a(lB) Me.Print "UBound(a) = " & uB & ", a(" & UBound(a) & ") = " & a(uB) Me.Print "" Me.Print "LBound(b) = " & LBound(b) & ", b(" & LBound(b) & ") = " & b(LBound(b)) Me.Print "UBound(b) = " & UBound(b) & ", b(" & UBound(b) & ") = " & b(UBound(b)) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д