精易论坛

标题: 简单的ProtoBuf(全数据类型)+解析工具 [打印本页]

作者: 红妆V    时间: 2021-8-11 16:12
标题: 简单的ProtoBuf(全数据类型)+解析工具
本帖最后由 红妆V 于 2021-8-11 16:50 编辑

ProtoBuf就不多介绍了,找了很多模块和支持库,用起来要么数据类型不全,要么不顺手

遂自己动手,丰衣足食,参考了不少论坛内其它的ProtoBuf改造而来

附带解析工具,不放心exe,下面还有exe源码


ProtoBuf用法
组包类,比较简单,数组或比较复杂的数据,自己拼接就好

  
子程序名返回值类型公开备 注
设置昵称字节集 
参数名类 型参考可空数组备 注
ID长整数型
昵称文本型
变量名类 型静态数组备 注
p_Protobuf 
p.setVarint (“7”, 1)
p.setLong (“8”, ID)
p.setString (“9”, 昵称)
返回 (p.getData ())


解析类,使用方案  [] 为数组成员索引 [1] =索引1

这样  1.2.3.4  或这样 1.2.3[1].4[2]    取4的第2条数据   


比如这样的用法

  
子程序名返回值类型公开备 注
背包物品列表逻辑型 
参数名类 型参考可空数组备 注
UserUserInfo
body字节集
变量名类 型静态数组备 注
U_UnProtobuf 
物品物品 
i整数型 
重定义数组 (User.Arr_物品, 假, 0)
U.解析 (body)
计次循环首 (U.getArrayLength (“5”), i)
物品.UUID = U.getLong (“5[”到文本 (i)“].1”)
物品.ID = U.getVarint (“5[”到文本 (i)“].2”)
物品.数量 = U.getVarint (“5[”到文本 (i)“].3”)
物品.类型 = U.getVarint (“5[”到文本 (i)“].5”)
加入成员 (User.Arr_物品, 物品)
计次循环尾 ()
返回 ()


这样

  
子程序名返回值类型公开备 注
背包物品列表逻辑型 
参数名类 型参考可空数组备 注
UserUserInfo
body字节集
变量名类 型静态数组备 注
U_UnProtobuf 
物品物品 
i整数型 
重定义数组 (User.Arr_物品, 假, 0)
U.解析 (body)
计次循环首 (U.getArrayLength (“5”), i)
物品.UUID = U.getAuto (“5[”到文本 (i)“].1”)
物品.ID = U.getAuto (“5[”到文本 (i)“].2”)
物品.数量 = U.getAuto (“5[”到文本 (i)“].3”)
物品.类型 = U.getAuto (“5[”到文本 (i)“].5”)
加入成员 (User.Arr_物品, 物品)
计次循环尾 ()
返回 ()


这样

  
子程序名返回值类型公开备 注
移动逻辑型 
参数名类 型参考可空数组备 注
UserUserInfo
body字节集
变量名类 型静态数组备 注
U_UnProtobuf 
U.解析 (body)
User.坐标1 = U.getInt (“4.1”)
User.坐标2 = U.getInt (“4.2”)
User.坐标3 = U.getInt (“4.3”)
返回 ()


这个是解析工具exe的代码,可自己复制编译

  
子程序名返回值类型公开备 注
_按钮_解析_被单击  
解析数据 ()
子程序名返回值类型公开备 注
解析数据  
变量名类 型静态数组备 注
U_UnProtobuf 
Cont整数型 
Temp文本型 
Body字节集 
Temp = 子文本替换 (删全部空 (编辑框_HEX.内容), #换行符, , , , )
Temp = 子文本替换 (Temp, “ ”, , , , )
Body = Hex2Bin2 (Temp)
Cont = U.解析 (Body, 真, 选择框_带HEX数据.选中, 取反 (选择框_显示索引.选中), 选择框_大端.选中, Temp)
标签_条数.标题 = “数量:”到文本 (Cont)
编辑框_解析.内容 = Temp



解析工具图





模块和工具在此

ProtoBuf.rar (369.88 KB, 下载次数: 794)





作者: 网络注册网员    时间: 2021-8-11 17:07
看下怎么用
作者: fyh505099    时间: 2021-8-12 00:40
感谢分享 先收藏起来吧
作者: zytlj    时间: 2021-8-12 00:47
好东西,谢谢分享。
作者: ca11    时间: 2021-8-18 11:51
66666666666666666666666666666666666666
作者: ca11    时间: 2021-8-18 11:51
66666666666666666666666666666666666666666666
作者: 落寞23333    时间: 2021-8-20 06:28
感谢大佬分享
作者: shencong    时间: 2021-8-23 11:22
您这个工具和其它工具解析出来的那种数字类型的结果不太一样是什么原因造成的呢,我不太懂这个

proto.png (21.15 KB, 下载次数: 0)

proto.png

作者: 红妆V    时间: 2021-8-24 20:25
shencong 发表于 2021-8-23 11:22
您这个工具和其它工具解析出来的那种数字类型的结果不太一样是什么原因造成的呢,我不太懂这个 ...

应该是我用了易语言自身的 位或 位与等命令运算时,大数丢失了精度,我改一下
作者: ihty265    时间: 2021-8-26 08:47
需要学习的知识还很多,感谢大佬
作者: f100long    时间: 2021-8-26 21:25
努力学习 天天向上
作者: zxcm1231    时间: 2021-8-27 12:13

谢谢分享。
作者: Yulent    时间: 2021-8-28 21:40
红妆V 发表于 2021-8-24 20:25
应该是我用了易语言自身的 位或 位与等命令运算时,大数丢失了精度,我改一下 ...
  
子程序名返回值类型公开备 注
右移_长整数型 将某整数的数据位右移指定位数,返回移动后的结果。本命令为中级命令。
参数名类 型参考可空数组备 注
欲移动的整数长整数型
欲移动的位数整数型
置入代码 ({ 137, 229, 139, 69, 8, 139, 85, 12, 139, 77, 16, 232, 4, 0, 0, 0, 93, 194, 12, 0, 128, 249, 64, 115, 22, 128, 249, 32, 115, 6, 15, 173, 208, 211, 250, 195, 137, 208, 193, 250, 31, 128, 225, 31, 211, 248, 195, 193, 250, 31, 137, 208, 195 })
返回 (0)
子程序名返回值类型公开备 注
左移_长整数型 将某整数的数据位左移指定位数,返回移动后的结果。本命令为中级命令。
参数名类 型参考可空数组备 注
欲移动的整数长整数型
欲移动的位数整数型
置入代码 ({ 137, 229, 139, 69, 8, 139, 85, 12, 139, 77, 16, 232, 4, 0, 0, 0, 93, 194, 12, 0, 128, 249, 64, 115, 21, 128, 249, 32, 115, 6, 15, 165, 194, 211, 224, 195, 137, 194, 49, 192, 128, 225, 31, 211, 226, 195, 49, 192, 49, 210, 195 })
返回 (0)
子程序名返回值类型公开备 注
位与_长整数型 如两个数值有某共同比特位为1,则返回值的对应位也为1,否则为0。返回计算后的结果。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。
参数名类 型参考可空数组备 注
位运算数值一长整数型
位运算数值二长整数型
置入代码 ({ 137, 229, 139, 69, 8, 35, 69, 16, 139, 85, 12, 35, 85, 20, 93, 194, 16, 0 })
返回 (0)
子程序名返回值类型公开备 注
位或_长整数型 如两个数值中有一个数值的某一比特位不为零,则返回值的对应位就为1,否则为0。返回计算后的结果。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。
参数名类 型参考可空数组备 注
位运算数值一长整数型
位运算数值二长整数型
置入代码 ({ 137, 229, 139, 69, 8, 11, 69, 16, 139, 85, 12, 11, 85, 20, 93, 194, 10, 0 })
返回 (0)


把自身的换成asm版的就好了

作者: Yulent    时间: 2021-8-29 11:56
protobuf工具.e (11.61 KB, 下载次数: 61)
工具源码,新增编辑框所在行的路径[方便复制粘贴],做了小小的改动,希望能帮到大家

对比起来,还是改动后的看着顺眼


作者: 7ian    时间: 2021-9-18 15:43
能解析 78 80 80 80 80 80 80 80 80 80 01  80 01 FF FF FF FF FF FF FF FF 7F   这两个,就说明没什么问题
作者: CsYuns    时间: 2021-10-26 16:31
群多少 进群下载最新的
作者: wolforce    时间: 2021-10-30 13:04
支持,正需要
作者: 君无戏闫    时间: 2021-12-20 11:17

作者: Mojito    时间: 2021-12-21 21:30

作者: nantiand    时间: 2021-12-27 01:02
枚举类型在编码的时候应该怎么写
作者: 夜深了YsL    时间: 2022-1-7 18:33
这个是解析工具exe的代码,可自己复制编译
作者: 夜深了YsL    时间: 2022-1-7 18:34
简单的ProtoBuf(全数据类型)+解析工具
作者: 452122    时间: 2022-1-8 01:14
11111111111111111111
作者: 452122    时间: 2022-1-8 01:16
22222222222222222222
作者: a287400871    时间: 2022-2-19 19:41
学习一下
作者: let4757539    时间: 2022-2-19 22:39
学习一下
作者: let4757539    时间: 2022-2-19 22:42

学习一下
作者: let4757539    时间: 2022-2-19 22:42
学习一下
作者: dadada1212    时间: 2022-3-29 23:20
谢谢大佬的工具,很好用
作者: duanyijun    时间: 2022-4-13 09:31
一如既往的好!!!
作者: Aa798040941    时间: 2022-4-25 21:04
不错不错
作者: xiaoming666    时间: 2022-7-1 20:11
正好需要这个东西 哈哈哈哈
作者: xiaoming666    时间: 2022-7-1 20:12
还差一点哈哈哈
作者: 84327633    时间: 2022-8-13 23:39
请问q群号
作者: QiLin88    时间: 2022-11-23 17:26
看看咋样,应该不错
作者: QiLin88    时间: 2022-12-7 17:00
简单的ProtoBuf(全数据类型)
作者: xiaom80    时间: 2023-2-18 15:52
下载看看,谢谢
作者: 无精打采    时间: 2023-3-24 15:13
下载看看,谢谢
作者: 无极    时间: 2023-4-20 17:36
        感谢分享,很给力!~
作者: percy    时间: 2023-4-28 16:24
这个长整数解析有问题,组包不能互逆
作者: qqmqqg    时间: 2023-5-25 18:37
66666666666666
作者: dong415    时间: 2023-6-19 03:45
+++++++++++++++
作者: 南絮    时间: 2023-10-25 09:30
感谢感谢
作者: 419099520    时间: 2024-2-6 03:37
感谢感谢感谢感谢
作者: ncjlc    时间: 2024-2-24 22:38
求推荐个稳定的组包解包模块
作者: ncjlc    时间: 2024-2-24 22:46
感谢感谢感谢感谢

作者: ncjlc    时间: 2024-2-24 22:46
感谢感谢感谢感谢

作者: q4569123    时间: 2024-10-9 05:57
终于又找到了大佬的模块了

作者: 千狐    时间: 2024-10-13 06:28
终于又找到了大佬的模块了
作者: VTwinkle    时间: 2024-11-20 03:08
6666666666666
作者: Perfectzone    时间: 2025-1-3 21:26
666666666666
作者: lhn0925    时间: 2025-2-5 09:05
学习一下
作者: 白云飘飘    时间: 2025-2-11 13:17
感谢分享,很给力!~
作者: 沉沦168    时间: 2025-2-19 19:43
66666666666666666666666666666666666666666666666666666666666
作者: 老衲jack    时间: 2025-6-5 18:38
[18:03:19] * “接收” | 2515948967141371238 | “-”2388887410
[18:03:20] * “接收” | 2515948967141381426 |“-”-2388877222
楼主,你这个模块有点小问题,应该就是他们所说的无符号整数的问题吧?
作者: lhkkhl123    时间: 2025-6-26 19:07
11111111111111




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4