定义一个字节数组aByte();里面存放着16进制数据,比如 15 AA 85 36 55 44 89 AA 12 55 44 AA 12............现在就是要把AA到55之间的数据提取出来,存放在另一个字节数组中.这二个数组的下标都是不能开始就定义好.

解决方案 »

  1.   

    aByte()长度未知?那也许可以用on error 来处理边界
    sub byte_copy(aByte(),bByte())
        on error goto errhandle
        dim bStart as boolean
        dim i as long ,b as long 
        bStart=false
        dim bByte() as byte
        redim bByte(1)
        while 1
            if aByte(i)=&haa then bStart=true
            if aByte(i)=&h55 then bStart=false
            if bStart then
                bByte(b)=aByte(i)
                b=b+1
                redim preseve bByte(b)
            end if
            i=i+1
        wend
        errhandle:
        exit sub
    end sub
      

  2.   

    aByte是已知的,可以用UBound来表示。你这个也差不多了。可还是有不足,比如,二个AA一起,二个55一起呢?
      

  3.   

    split
    instr
    StrConv, vbFromUnicode ,vbUnicode
    byte数组以及string之间互相赋值