⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 字节发送.frm

📁 一个VB通讯不错的程序
💻 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 + -