看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《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