两个byte数组如何相加???

lgh1982 2005-04-20 05:15:02
请问高手们:

我想把两个不定长度的byte数组相加,结果保留到第三个不定长度的byte数组中,请问怎么实现呢???
...全文
2868 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tmran 2005-04-20
  • 打赏
  • 举报
回复
学习
wzzwwz 2005-04-20
  • 打赏
  • 举报
回复
全是大虾
homezj 2005-04-20
  • 打赏
  • 举报
回复
严重同意老鸟
也严重同意木头人

老鸟的办法应该学会,是纯VB方案,速度不算慢,且最方便,不用任何计算。它充分利用了BSTR字符串的特点,BSTR字符串不象LPSTR那样以\0结束,它可包含任意一个字节。

CopyMemory在Byte数组越大时,速度优势越明显,我测试了一下,连接30000字节长数组,CopyMemory比直接连快7倍。但正如viena所说,对于小数组,还是直接连方便。
viena 2005-04-20
  • 打赏
  • 举报
回复
Tiger_Zhao(VB老鸟)的是对的,只是转换为字符串再连接效率比较低;
但如果数组不是很大,完全可以了
viena 2005-04-20
  • 打赏
  • 举报
回复
'声明(模块中用Public,窗体中改为private)
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)
viena 2005-04-20
  • 打赏
  • 举报
回复
如果很大的话,最好用copymemory
northwolves 2005-04-20
  • 打赏
  • 举报
回复
Function BYTES(ByRef BYTE1() As Byte, ByRef BYTE2() As Byte)
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 B

End Function

Private 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 函数
lgh1982 2005-04-20
  • 打赏
  • 举报
回复
我的意思是数组的连接,对不起


比如第一个是 00 0a 1a c3 第二个是 9a 6b 31 34 55 81 3e

得到的数组是 00 0a 1a c3 9a 6b 31 34 55 81 3e
Tiger_Zhao 2005-04-20
  • 打赏
  • 举报
回复
Sub Main()
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
flyingZFX 2005-04-20
  • 打赏
  • 举报
回复
循环加呀。
zxt12300 2005-04-20
  • 打赏
  • 举报
回复
不知道你那两个不定长的数组长度时候相同,若不同,邀请怎么相加?
vb里,只能用循环处理数组了。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧