作者chinoyan (chino)
看板Visual_Basic
标题Re: [VB6 ] SHIFT
时间Fri Nov 4 05:59:43 2011
※ 引述《BlueFeel (蓝色感觉)》之铭言:
: 小弟有好几个Textbox(text(1).text~text(20).text),
: 每一个都会放2位的16进制,ex. 00~FF
: 我想所有textbox的资料合起来,然後右移n bit,
上面这段看的懂
: 下面是小弟针对19与20这两个右移1bit的程式,想用for 让每个都照这样做.
: 因为TEXT(n).text, n可能会20个,甚至更多,VB6不可能建这样长的array去记这些资料,
: 所以我这样写...
: text(20).text =
: Right$("0" & Hex(128 * ((Val("&H" & text(19).text)) And &H1&)
: + fix(Val("&H" & text(20).text) / 2)), 2)
: 首先, 先判断 19 LSB是1的话就乘128与20右移1bit相加,再转2位16进制放回20.
看不懂上面这段你想表达的完整意思 ,
: 给了几个值, 结果如於预期,
: 想问一下.....有更快的方法...?
帮你写了这段码 , 你拿去改改看合不合用
Dim TmpStr() As String, Str As String, ByteArr() As Byte
Dim MoveByteNum As Long, i As Long
MoveByteNum = 5
Str = "01 02 2A 54 E3 D5 FF"
TmpStr = Split(Str, " ")
ReDim ByteArr(UBound(TmpStr) + MoveByteNum) As Byte
For i = 0 To UBound(ByteArr)
If i < MoveByteNum Then
ByteArr(i) = &H0
Else
ByteArr(i) = CByte("&H" + TmpStr(i - MoveByteNum))
End If
Debug.Print Hex(ByteArr(i))
Next
--
████ █ ★ ████ █ █ █
█ █ █ █ █ █ 超 级 热 烈 欢 迎
█ ████ █ █ █ ████ █
█ █ █ █ ███★ █ █ 欢迎到嘉义版!
★███ █ █ █ █ █ █ █
讯驰电脑-路径 →
嘉义市林森西路496号 →
(05)2244-526 →
顺发斜对面
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.214.160