如何接受字符串数据

jinhongbin 2006-02-10 02:06:38
这个程序是用字符接的数据,我要用二进字去接受,然后把二进字转换成字符行,应该如何去做。
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.RTSEnable = 1
MSComm1.RThreshold = 1
MSComm1.InputMode = 1 ’二进字接收
MSComm1.InputLen = 1
MSComm1.InBufferSize = 4096
MSComm1.PortOpen = True
End Sub
Private Sub MSComm1_OnComm()
Dim strfile As String
Dim iLoop As Integer
Dim sChar As String
Dim aa As String
Dim temp As Variant
Dim tembyte() As Byte
Dim k As Integer
Select Case MSComm1.CommEvent
Case comEvReceive
strfile = MSComm1.Input

For iLoop = 1 To Len(strfile)
sChar = Mid(strfile, iLoop, 1)
If sChar = "C" Or sChar = Chr(13) Or sChar = "%" Then
aa = buffer
Call pp(aa)
buffer = vbNullString
End If
Next iLoop

Text1.Text = Text1.Text & sChar
l = Len(buffer)
End Select
End Sub
...全文
108 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jadeluo 2006-02-10
  • 打赏
  • 举报
回复
Private Sub MSComm1_OnComm()
Dim bBuffer() As Byte
Dim iLoop As Integer
Dim bChar As Byte
Dim aa As String
Select Case MSComm1.CommEvent
Case comEvReceive
bBuffer = MSComm1.Input
For iLoop = LBound(bBuffer) To UBound(bBuffer)
bChar = bBuffer(iLoop)
If bChar = ASC("C") Or bChar = 13 Or bChar = ASC("%") Then
aa = buffer
Call pp(aa)
buffer = vbNullString
End If
Next iLoop

buffer = buffer & chr(bChar) '!!!!!
l = Len(buffer)
End Select
End Sub

注: 以上代码不能用于含有中文字符的内容的发送,否则标记有!!!!!的行会出现运行时错误
迈克揉索芙特 2006-02-10
  • 打赏
  • 举报
回复
StrConv 函数


返回按指定类型转换的 Variant (String)。

语法

StrConv(string, conversion, LCID)

StrConv 函数的语法有下面的命名参数:

部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)


设置值

conversion 参数的设置值为:

常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。

vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。



*应用到远东国别。

**仅应用到日本。

注意 这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。其中大部分是可以组合的,例如 vbUpperCase + vbWide,互斥的常数不能组合,例如 vbUnicode + vbFromUnicode。当在不适用的国别使用常数 vbWide、vbNarrow、vbKatakana,和 vbHiragana 时,就会导致运行时错误。

下面是一些一般情况下的有效分界符:Null (Chr$(0)),水平制表符 (Chr$(9)),换行 (Chr$(10)),垂直制表符 (Chr$(11)),换页 (Chr$(12)) ,回车 (Chr$(13)),空白 (SBCS) (Chr$(32))。在 DBCS中,空白的实际值会随国家/地区而不同。

说明

在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您转换 Unicode 格式的这种数组时,使用赋值语句。

7,788

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧