|
字节集数据比较大小的方法
比较方法:
被比较的字节集A和B,长度选最长的进行计次循环。
A和B若尝试越界访问则必须经过判断返回0,否则会报错。
先比较A和B的第1字节、相同的则比较下1字节,直到不同为止,全部相同返回等于。
A和B若数据全为0(空字符),长度不一致按长度判断,否则返回等于。
- .版本 2
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 字节集数组, 字节集, , "10"
- .局部变量 计数, 整数型
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- 置随机数种子 ()
- .计次循环首 (10, 计数)
- 字节集数组 [计数] = 字节集_取随机 (取随机数 (1, 10))
- .计次循环尾 ()
- 字节集_数组排序 (字节集数组, 真)
- 调试输出 (字节集数组)
- .子程序 字节集_取随机, 字节集, , 返回一个由随机数值的乱码字节集数据,可指定值的返回,使用前请使用“置随机数种子”命令为随机数生成器初始化一个种子值。
- .参数 字节长度, 整数型
- .参数 最小值, 字节型, 可空, 默认0
- .参数 最大值, 字节型, 可空, 默认255
- .局部变量 字节集, 字节集
- .局部变量 计数, 整数型
- .如果真 (是否为空 (最大值))
- 最大值 = 255
- .如果真结束
- 字节集 = 取空白字节集 (字节长度)
- .如果真 (最小值 = 0 且 最大值 = 0)
- 返回 (字节集)
- .如果真结束
- .计次循环首 (字节长度, 计数)
- 字节集 [计数] = 取随机数 (最小值, 最大值)
- .计次循环尾 ()
- 返回 (字节集)
- .子程序 字节集_大小比较, 字节型, 公开, A等于B返回0 A小于B返回1 A大于B返回2 全部为0时按长度比较
- .参数 字节集A, 字节集
- .参数 字节集B, 字节集
- .局部变量 A长度, 整数型
- .局部变量 B长度, 整数型
- .局部变量 计数, 整数型
- .局部变量 A代码, 字节型
- .局部变量 B代码, 字节型
- A长度 = 取字节集长度 (字节集A)
- B长度 = 取字节集长度 (字节集B)
- .计次循环首 (选择 (A长度 > B长度, A长度, B长度), 计数)
- .如果 (计数 ≤ A长度)
- A代码 = 字节集A [计数]
- .否则
- A代码 = 0
- .如果结束
- .如果 (计数 ≤ B长度)
- B代码 = 字节集B [计数]
- .否则
- B代码 = 0
- .如果结束
- .如果真 (A代码 ≠ B代码)
- 返回 (选择 (A代码 < B代码, 1, 2))
- .如果真结束
- .计次循环尾 ()
- .如果真 (A长度 = B长度)
- 返回 (0)
- .如果真结束
- 返回 (选择 (A长度 < B长度, 1, 2))
- .子程序 字节集_数组排序, , 公开
- .参数 字节集数组, 字节集, 参考 数组
- .参数 从小到大, 逻辑型, 可空
- .局部变量 返回值, 字节集, , "0"
- .局部变量 位置, 整数型
- .局部变量 最大字节集, 字节集
- .局部变量 计数, 整数型
- .局部变量 成员数, 整数型
- .循环判断首 ()
- 最大字节集 = { }
- 成员数 = 取数组成员数 (字节集数组)
- .计次循环首 (成员数, 计数)
- .如果真 (字节集_大小比较 (字节集数组 [计数], 最大字节集) = 2)
- 最大字节集 = 字节集数组 [计数]
- 位置 = 计数
- .如果真结束
- .计次循环尾 ()
- 加入成员 (返回值, 最大字节集)
- 删除成员 (字节集数组, 位置, 1)
- .循环判断尾 (成员数 - 1 > 0)
- .如果 (从小到大)
- 成员数 = 取数组成员数 (返回值)
- .计次循环首 (成员数, 计数)
- 加入成员 (字节集数组, 返回值 [成员数 - 计数 + 1])
- .计次循环尾 ()
- .否则
- 字节集数组 = 返回值
- .如果结束
复制代码
|
|