vb 从字符串中取特定字符串

从缓冲区读取的值第一个字节:为重量值最高位第二个字节:为重量值次高位第三个字节:为重量值低位第四个字节:辅助信息可以不做理睬因为每次读的值都是变化的,不能确定到底有几位,... 从缓冲区读取的值
第一个字节: 为重量值最高位
第二个字节: 为重量值次高位
第三个字节: 为重量值低位
第四个字节:辅助信息可以不做理睬

因为每次读的值都是变化的,不能确定到底有几位,图中显示的第一条值就是383
前三个字节每个字节都有可能有2位,我怎样才能正确提取出这个值呢
strbuffer = Left(buffer, 7),这样有的时候时候就把第4个字节的8提取出来了
展开
 我来答
money0_04c351c2
2012-11-11 · TA获得超过4141个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1578万
展开全部
你应该用 Split() 函数,按空格将字符串拆分。
例如:
Dim Str() as string
Str = Split("0 0 3 80 CE 6F", " ")

拆分的结果是一个字符串数组,你循环解析就可以了。
更多追问追答
追问
你好,按照你的方法,我试了还有一点小问题,譬如说次高位有值为7,低位为7,按实际的应该是07,不过返回的值里0没显示。这样我的结果result就是77,实际值应该是707。请问有什么方法可以解决吗?
strbuffer = Split(buffer, " ")
For i = 0 To 2
result = result + strbuffer(i)
Next
追答
你这思路就不对,16进制的数怎么能直接用加法呢。
至于省略零的情况更不是问题,看下面
strbuffer = Split(buffer, " ")
result = 进制转换函数(strbuffer(0)) * 高位权值 + 进制转换函数(strbuffer(1)) * 次高位权值 + 进制转换函数(strbuffer(2)) * 低位权值
如果你使用的是BCD码,那么 进制转换函数可以省略为一个 Val()。
这里权值是指该位的基准位。
比如:将3.456表示为 03 45 60,则高位权值为1,次高0.01,低位0.0001
丿猫喵
2012-11-11 · TA获得超过162个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:112万
展开全部
加上len(buffer)确定长度是len 还是lenth记不清了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式