你程序中的 l = VarPtr(enumFirst(1)) k = VarPtr(enumSecond(10)) ReDim Preserve enumSecond(UBound(enumSecond) + UBound(enumFirst)) Call CopyMemory(k, l, 10)将第三句放到前面, Dim lener as Long lener=UBound(enumSecond) + UBound(enumFirst) ReDim Preserve enumSecond(lener) l = VarPtr(enumFirst(1)) k = VarPtr(enumSecond(10)) Call CopyMemory(k, l, 10) 手头没有VB,所以没有试,你可以试试。 其实有一个笨方法,执行速度慢一点,不过肯定有用; 用二进制打开文件,分别写入两个数组,再用二进制方法重新读出就可以了,在速度要求不高的情况下可以这么做,还是用你原来的方法吧。
上面的回答有点罗嗦,这样就可以了。 ReDim Preserve enumSecond(UBound(enumSecond) + UBound(enumFirst)) l = VarPtr(enumFirst(1)) k = VarPtr(enumSecond(10)) Call CopyMemory(k, l, 10)
给你段代码参考一下:Public Function UniteByteArray(bBa1() As Byte, bBa2() As Byte) As Byte() Dim bUb() As Byte Dim iUbd1 As Integer Dim iUbd2 As Integer Dim I As Integer
iUbd1 = UBound(bBa1) iUbd2 = UBound(bBa2) ReDim bUb(0 To iUbd1 + iUbd2 + 1) As Byte For I = 0 To iUbd1 bUb(I) = bBa1(I) Next I For I = iUbd1 + 1 To UBound(bUb) bUb(I) = bBa2(I - iUbd1 - 1) Next I UniteByteArray = bUb End Function================================================================ [* 我是僵尸我怕谁 *]
Dim enumFirst() As Byte Dim enumSecond() As ByteReDim enumFirst(1 to 10) Dim lngCounter As Long For lngCounter = 1 To 10 enumFirst(lngCounter) = lngCounter Next lngCounterReDim enumSecond(1 to 10) For lngCounter = 1 To 10 enumSecond(lngCounter) = lngCounter + 10 Next lngCounterReDim Preserve enumSecond(1 to UBound(enumSecond) + UBound(enumFirst))Call CopyMemory(VarPtr(enumSecond(11)), enumFirst(1), 10)
l = VarPtr(enumFirst(1))
k = VarPtr(enumSecond(10))
ReDim Preserve enumSecond(UBound(enumSecond) + UBound(enumFirst))
Call CopyMemory(k, l, 10)将第三句放到前面,
Dim lener as Long
lener=UBound(enumSecond) + UBound(enumFirst)
ReDim Preserve enumSecond(lener)
l = VarPtr(enumFirst(1))
k = VarPtr(enumSecond(10))
Call CopyMemory(k, l, 10)
手头没有VB,所以没有试,你可以试试。
其实有一个笨方法,执行速度慢一点,不过肯定有用;
用二进制打开文件,分别写入两个数组,再用二进制方法重新读出就可以了,在速度要求不高的情况下可以这么做,还是用你原来的方法吧。
ReDim Preserve enumSecond(UBound(enumSecond) + UBound(enumFirst))
l = VarPtr(enumFirst(1))
k = VarPtr(enumSecond(10))
Call CopyMemory(k, l, 10)
Dim bUb() As Byte
Dim iUbd1 As Integer
Dim iUbd2 As Integer
Dim I As Integer
iUbd1 = UBound(bBa1)
iUbd2 = UBound(bBa2)
ReDim bUb(0 To iUbd1 + iUbd2 + 1) As Byte
For I = 0 To iUbd1
bUb(I) = bBa1(I)
Next I
For I = iUbd1 + 1 To UBound(bUb)
bUb(I) = bBa2(I - iUbd1 - 1)
Next I
UniteByteArray = bUb
End Function================================================================
[* 我是僵尸我怕谁 *]
Dim enumSecond() As ByteReDim enumFirst(1 to 10)
Dim lngCounter As Long
For lngCounter = 1 To 10
enumFirst(lngCounter) = lngCounter
Next lngCounterReDim enumSecond(1 to 10)
For lngCounter = 1 To 10
enumSecond(lngCounter) = lngCounter + 10
Next lngCounterReDim Preserve enumSecond(1 to UBound(enumSecond) + UBound(enumFirst))Call CopyMemory(VarPtr(enumSecond(11)), enumFirst(1), 10)