|
发表于 2009-4-11 21:42:34
|
显示全部楼层
随便写的,参考一下吧,把text1里的内容以hex的形式输出到MSComm1,如text1键入“12 3e”(不包括引号,每个hex间隔一个空格),则输出12 3e,不规则的输入可能会出错
Private Sub Command1_Click()
On Local Error GoTo ErrH
Dim oStr As String
Dim Buf(255) As Byte
oStr = Text1.Text
If Trim(oStr) = "" Then
MsgBox "输入为空"
Exit Sub
End If
Dim TheLen As Integer '字符串长度
TheLen = Len(oStr)
oStr = oStr & " "
Dim i As Integer, Piece As String, j As Integer
j = 0
i = 1
While i <= TheLen
Piece = Mid(oStr, i, 1)
If IsNumeric("&H" & Piece) Then '检测到数字
If i + 1 <= TheLen And IsNumeric("&H" & Mid(oStr, i + 1, 1)) Then '后面一个也是数字
Buf(j) = CByte("&H" & Mid(oStr, i, 2))
j = j + 1
i = i + 2
Else
Buf(j) = CByte("&H" & Mid(oStr, i, 1))
j = j + 1
i = i + 1
End If
Else
i = i + 1
End If
Wend
'生成完毕,
If j = 0 Then
MsgBox "你输入的字符串中没有数字"
Exit Sub
End If
Dim Arr() As Byte
ReDim Arr(j - 1)
For i = 0 To j - 1
Arr(i) = Buf(i)
Next
MSComm1.Output = Arr 'outbte(0) '...发送数据
Exit Sub
ErrH:
MsgBox Err.Description
End Sub |
|