※ 引述《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