📄 字节发送.frm
字号:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 4635
ClientLeft = 60
ClientTop = 345
ClientWidth = 7170
LinkTopic = "Form1"
ScaleHeight = 4635
ScaleWidth = 7170
StartUpPosition = 3 '窗口缺省
Begin VB.TextBox Text5
Height = 975
Left = 5160
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 8
Top = 1080
Width = 1815
End
Begin VB.CommandButton Command4
Caption = "清空"
Height = 615
Left = 4920
TabIndex = 7
Top = 3480
Width = 1455
End
Begin VB.TextBox Text4
Height = 855
Left = 5160
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 6
Top = 120
Width = 1815
End
Begin VB.TextBox Text3
Height = 975
Left = 3000
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 5
Top = 1080
Width = 1815
End
Begin MSCommLib.MSComm MSComm1
Left = 600
Top = 3720
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
RThreshold = 1
InputMode = 1
End
Begin VB.CommandButton Command3
Caption = "接收"
Height = 615
Left = 3600
TabIndex = 4
Top = 2520
Width = 1455
End
Begin VB.CommandButton Command2
Caption = "结束"
Height = 615
Left = 2040
TabIndex = 3
Top = 3480
Width = 1455
End
Begin VB.CommandButton Command1
Caption = "发送"
Height = 615
Left = 720
TabIndex = 2
Top = 2520
Width = 1335
End
Begin VB.TextBox Text2
Height = 855
Left = 3000
TabIndex = 1
Top = 120
Width = 1815
End
Begin VB.TextBox Text1
Height = 855
Left = 360
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 0
Top = 840
Width = 1815
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim outbyte() As Byte
Dim inbyte() As Byte
Private Sub Command1_Click()
Dim buf$, i%
buf = Text1.Text
outbyte = StrConv(buf, vbFromUnicode)
MSComm1.Output = outbyte '以字节发送,不设定为以字符发送
'也就是以二进发送数据
'要发送十六进制,要重新分开发送
'..........要编一个十六进制发送程序才行
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command3_Click()
Dim buf$, i%
Dim buf1 As String
Dim strHex As String '十六进制编码
Dim strAscii As String 'ASCII码
Dim intValue As Integer
Dim intHighHex As Integer
Dim intLowHex As Integer
Dim strSingleChr As String * 1
buf = ""
inbyte = MSComm1.Input
For i = LBound(inbyte) To UBound(inbyte)
buf = buf + Hex(inbyte(i)) + Chr(32) '字符十六进制
buf1 = buf1 + Trim(inbyte(i)) '字符十进制
intValue = inbyte(i)
If intValue < 32 Or intValue > 128 Then '处理非法字符
strSingleChr = Chr(46) '对于不能显示的ASCII码,
Else '用"."表示
strSingleChr = Chr(intValue)
End If
strAscii = strAscii + strSingleChr '字符
intHighHex = inbyte(i) \ 16 '十六进制另一种算法
intLowHex = inbyte(i) - intHighHex * 16
If intHighHex < 10 Then
intHighHex = intHighHex + 48
Else
intHighHex = intHighHex + 55
End If
If intLowHex < 10 Then
intLowHex = intLowHex + 48
Else
intLowHex = intLowHex + 55
End If
strHex = strHex + " " + Chr$(intHighHex) + Chr$(intLowHex) + " "
Next i
Text2.Text = buf '接收到的是以十六进表示的字符的ASCII码
'如发送0,它对应的ASCII为48,收到的为32十六进数
Text3.Text = strAscii
Text4.Text = strHex
Text5.Text = buf1
End Sub
Private Sub Command4_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
End Sub
Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub
Private Sub MSComm1_OnComm()
Dim buf$, i%
Dim buf1 As String
Dim strHex As String '十六进制编码
Dim strAscii As String 'ASCII码
Dim intValue As Integer
Dim intHighHex As Integer
Dim intLowHex As Integer
Dim strSingleChr As String * 1
buf = ""
Select Case MSComm1.CommEvent
Case comEvReceive
inbyte = MSComm1.Input
For i = LBound(inbyte) To UBound(inbyte)
buf = buf + Hex(inbyte(i)) + Chr(32) '字符十六进制
buf1 = buf1 + Trim(inbyte(i)) '字符十进制
intValue = inbyte(i)
If intValue < 32 Or intValue > 128 Then '处理非法字符
strSingleChr = Chr(46) '对于不能显示的ASCII码,
Else '用"."表示
strSingleChr = Chr(intValue)
End If
strAscii = strAscii + strSingleChr '字符
intHighHex = inbyte(i) \ 16 '十六进制另一种算法
intLowHex = inbyte(i) - intHighHex * 16
If intHighHex < 10 Then
intHighHex = intHighHex + 48
Else
intHighHex = intHighHex + 55
End If
If intLowHex < 10 Then
intLowHex = intLowHex + 48
Else
intLowHex = intLowHex + 55
End If
strHex = strHex + " " + Chr$(intHighHex) + Chr$(intLowHex) + " "
Next i
Text2.Text = Text2.Text + buf '接收到的是以十六进表示的字符的ASCII码
'如发送0,它对应的ASCII为48,收到的为32十六进数
Text3.Text = Text3.Text + strAscii
Text4.Text = Text4.Text + strHex
Text5.Text = Text5.Text + buf1
End Select
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -