vb接收数据解码问题

下位机会发送上来一串字符串,如“t298y03t298y03”怎样才能在接受到数据时完成,text1.text=298text2.text=03呢我写的代码时这样的Pri... 下位机会发送上来一串字符串,如“t298y03t298y03”
怎样才能在接受到数据时完成,text1.text=298 text2.text=03呢
我写的代码时这样的
Private Sub command1_Click()
If Winsock1.State = sckClosed Then
Winsock1.RemoteHost = "192.168.11.254"
Winsock1.RemotePort = 8080
Winsock1.Connect
End If
End Sub
'-----------------------------------
' 接受数据
'-----------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim myStr As String
Dim buffer As String
Dim wendu As String
Dim yanwu As String
'调用GetData方法接收数据
Winsock1.GetData myStr
buffer = myStr
myStr = Fix(buffer / 10000)
wendu = Fix(myStr / 100)
wendu = wendu / 10
yanwu = myStr Mod 100
myStr = ""
Text1.Text = wendu
Text2.Text = yanwu
'Option1.Value = True
End Sub
求指正,指点,谢谢
展开
 我来答
zdingyun
推荐于2016-12-06 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48180
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部

使用Mid 函数来解析字符串。

Mid 函数

返回 Variant (String),其中包含字符串中指定数量的字符。

Mid 函数示例

本示例使用 Mid 语句来得到某个字符串中的几个字符。

Dim MyString, FirstWord, LastWord, MidWords
MyString = "Mid Function Demo"   建立一个字符串。
FirstWord = Mid(MyString, 1, 3)   ' 返回 "Mid"。
LastWord = Mid(MyString, 14, 4)   ' 返回 "Demo"。
MidWords = Mid(MyString, 5)   ' 返回 "Funcion Demo"。
更多追问追答
追问
这样做不会溢出吗?
每次收到的字符串长度有点不一样的
追答
从接收的字符串看,似乎是数字夹在字母间,可将字符串接收后先将除数字外所有字母替换为一个单一的非数字字符,这是用Replace函数实现。而后可用Split函数将字符串拆分成数字组成字符串的数组,按需取出。
alxzoom
2015-06-11 · TA获得超过523个赞
知道小有建树答主
回答量:646
采纳率:80%
帮助的人:434万
展开全部
你这样处理不好,因为数据有长有短,还有字符,容易混乱。
追问
我知道这样不行,数据会溢出,而且会乱码,可是我不知道怎么解决,所以来提问啊
追答

所以最好根据特征去判断。比如我们输入了t298y03

那么我们去找 t 和y的位置,然后去取字符串

str1 = "t298y03"

a = InStr(str1, "t")

b = InStr(str1, "y")

Text1 = Mid(str1, a + 1, b - a - 1)

Text2 = Right(str1, Len(str1) - b)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式