經過處理檢驗之后生成的16進制字串顯示在text中,格式如下“0200030B3A00000000013231343433B903”,現在要將其2個字符一組放入陣列中,陣列應為a(0)=&H2 a(1)=&H0 a(2)=&H3 a(3)=&HB a(4)=&H3A a(5)=&H0以此類推
uj5u.com熱心網友回復:
作為一個C程式員,對scanf,sscanf,fscanf
printf,sprintf,fprintf
這類函式的用法,還是要做到“拳不離手,曲不離口”的。
#include <stdio.h>
char s[]="0200030B3A00000000013231343433B903";
char b[100];
int i,v;
int main() {
i=0;
while (1) {
if (1!=sscanf(s+2*i,"%2x",&v)) break;
b[i]=(char)v;
i++;
if (i>=100) break;
}
n=i;
for (i=0;i<n;i++) printf("b[%d]==0x02X\n",i,(unsigned char)b[i]);
return 0;
}
uj5u.com熱心網友回復:
Option Explicit
Dim strHex As String
Private Sub Command1_Click()
Dim bytHex() As Byte
Dim i As Long
ReDim bytHex(Len(strHex) / 2 - 1)
For i = 1 To Len(strHex) Step 2
bytHex((i - 1) / 2) = Val(Mid(strHex, i, 2))
Next
For i = 0 To UBound(bytHex)
Debug.Print bytHex(i)
Next
End Sub
Private Sub Form_Load()
strHex = "0200030B3A00000000013231343433B903"
End Sub
uj5u.com熱心網友回復:
vb6,可以使用mid函式,這是笨法。應該也可以使用api,如copymemory
uj5u.com熱心網友回復:
實際上,需要進行16 進制字串到 Byte 陣列之間的格式轉換:
Dim a() As Byte, i As Long
Text1 = "0200030B3A00000000013231343433B903"
ReDim a(Len(Text1) \ 2 - 1)
For i = 0 To UBound(a)
a(i) = Val("&H" & Mid(Text1, i * 2 + 1, 2))
Debug.Print "&H" & Hex(a(i)) & " ";
Next i
Debug.Print
結果
&H2 &H0 &H3 &HB &H3A &H0 &H0 &H0 &H0 &H1 &H32 &H31 &H34 &H34 &H33 &HB9 &H3
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/92469.html
標籤:VB基礎類
上一篇:為什么總是出現“標準運算式中資料型別不匹配的實時錯誤”
下一篇:求助(網頁操作)
