JS小工具_01_清单
1、将 Qt中 执行的 JS,从 明文 字符串 转换成 const的二进制的数组(这样肉眼也增加肉眼识别难度)
2、类的标识(数字[32/64/更多位数] 或者 字符串)
2.1、数字:例如 32位数字,从低位到高位排序(0~31),基类占位0,第一层子类占 位1&位2,子类1标志(0x03)、子类2标志(0x05)、子类3标志(0x07);这样就出现问题(缺陷):g光用类的标志类做 与操作(&)的话, 子类3(包裹其子类) 都是 子类1 的子类了... 于是就需要 将 位0~3 整体比较,那就要指定比较的位数,这样 每个类都要指定需要比较的位数(用 map对应查找 或者 数组对应查找),这样就比较麻烦了,不方便...
2.2、字符串:虽然没有上面数字的缺陷(每个类占几个位就是几个位,不多占,少的用0补齐;这样就只要比较字符串的右侧部分是否一致就可以了[ 类似endwith()的函数 ]),缺陷:字符串 操作较慢
2.3、现在使用这样的方式:
使用类似 XML的格式来定义这个枚举类型,这样 在判断 是否属于某一个基类的范围时,只需要 做一个整数的范围比较即可。方便又省事,而且 类型再多也不怕,一个整数的范围总够放了...
ZC:实际上 只要是类似 XML的树形结构,都可以使用这种的方式
enum TdrawUnitType { dutNone = 0, dutBaseGraph, dutBaseLink, dutLinkPoint, dutBaseDrag, dutDragPoint, dutDragLineSegment, dutDrGraph, dutUse, dutUseGroup, dutSCKG,// 手车开关 dutLJB,// 两圈变 dutYZLJB,//有载两圈变 dutLJB_END, dutSJB,// 三卷变(三圈变) dutYZSJB,// 有载三卷变(有载三圈变) dutWZSJB,// 无载三卷变(无载三圈变) dutSJB_END, dutUseGroup_END,// <== <== <== <== <== ZC:这里就是 dutUseGroup 的结束的位置,要判断一个类是否是 UseGroup,只要判断是否在 [dutUseGroup,dutUseGroup_END)范围中 即可 ! ! ! dutUseA, dutCrossLink, dutText, dutDrGraphA, dutBus,// 母线 dutRectA, dutUse__C = 0x80000000 | dutUse, dutUseA__C = 0x80000000 | dutUseA, dutCrossLink__C = 0x80000000 | dutCrossLink, dutBus__C = 0x80000000 | dutBus, dutSCKG__C = 0x80000000 | dutSCKG, dutSJB__C = 0x80000000 | dutSJB, dutYZSJB__C = 0x80000000 | dutYZSJB, dutWZSJB__C = 0x80000000 | dutWZSJB, dutLJB__C = 0x80000000 | dutLJB, dutYZLJB__C = 0x80000000 | dutYZLJB, dutText__C = 0x80000000 | dutText, // dutTextRect__C = 0x80000000 | dutTextRect, dutRectA__C = 0x80000000 | dutRectA };
3、协议的过程中(圈圈教你USB),作者说 他写了一个 java版的 在线的生成 USB数据包的工具(但是我访问过,网址已经失效了),我可以写一个 JavaScript版本的小工具。
4、
5、