请问高手们:我想把两个不定长度的byte数组相加,结果保留到第三个不定长度的byte数组中,请问怎么实现呢???
解决方案 »
- vb6 数组问题??
- 关于改变TXT的问题
- vb打印问题求助……
- "Trim"和"Ucase"等函数在运行时系统提示找不到工程库,请问这两个函数是存在于那个库里?
- 各位大哥好,小弟想向各位请教一个问题(进来就有分)
- 关于两个控件的问题,希望大家帮忙
- 希望提供一个思路,如何编程实现:获得从闪存盘读取数据的速度。
- 如何用回车键改变焦点位置
- 一个非常简单的问题,送分30
- 求adsi高手,救救我吧最高20了一定给
- VB写的软件在 XP 和 2003 可以运行 可到了 WINDOWS2003 SP4 运行提示 AX错误
- DataReport报表程序在未安装vb的98下运行提示msdbrptr.dll版本过期?该怎么解决?
Dim ary1() As Byte
Dim ary2() As Byte
Dim ary3() As Byte
Dim i As Long
ReDim ary1(2)
ary1(0) = 1
ary1(1) = 2
ary1(2) = 3
ReDim ary2(1)
ary2(0) = 10
ary2(1) = 20
ary3 = CStr(ary1) & CStr(ary2)
For i = 0 To UBound(ary3)
Debug.Print i, ary3(i)
Next
End Sub
比如第一个是 00 0a 1a c3 第二个是 9a 6b 31 34 55 81 3e得到的数组是 00 0a 1a c3 9a 6b 31 34 55 81 3e
Dim B() As Byte, MAX As Integer
MAX = UBound(BYTE1)
ReDim B(MAX)
B = BYTE1
Dim I As Integer
For I = 0 To UBound(BYTE2)
MAX = MAX + 1
ReDim Preserve B(MAX)
B(MAX) = BYTE2(I)
Next
BYTES = B
Erase BEnd FunctionPrivate Sub Command1_Click()
Dim X As String, Y As String, A() As Byte, B() As Byte, C() As Byte
X = "1234"
Y = "ABCD"
A = StrConv(X, vbUnicode)
B = StrConv(Y, vbUnicode)
C = BYTES(A, B)
MsgBox StrConv(C, vbFromUnicode)
End Sub
最好用copymemory API 函数
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)'调用
ReDim abyte3(UBound(abyte1) + UBound(abyte2) + 1) As Byte
Call CopyMemory(abyte3(0), abyte1(0), UBound(abyte1) + 1)
Call CopyMemory(abyte3(UBound(abyte1) + 1), abyte2(0), UBound(abyte2) + 1)
但如果数组不是很大,完全可以了
也严重同意木头人老鸟的办法应该学会,是纯VB方案,速度不算慢,且最方便,不用任何计算。它充分利用了BSTR字符串的特点,BSTR字符串不象LPSTR那样以\0结束,它可包含任意一个字节。CopyMemory在Byte数组越大时,速度优势越明显,我测试了一下,连接30000字节长数组,CopyMemory比直接连快7倍。但正如viena所说,对于小数组,还是直接连方便。