|
又看了一下要求,你需要多种方法进行取出结果对比。这是三种方法。取出的结果也都一样。
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 源文本 | 文本型 | | | 结果1 | 文本型 | | | 结果2 | 文本型 | | | 结果3 | 文本型 | | |
源文本 = “234330313233903435363738953930AF3132863334353637383951”结果1 = 提取连续Hex对 (源文本 )结果2 = 状态机提取连续Hex对 (源文本 )结果3 = 位操作提取连续Hex对 (源文本 )输出调试文本 (结果1 ) 输出调试文本 (结果2 ) 输出调试文本 (结果3 ) 变量名 | 类 型 | 静态 | 数组 | 备 注 | 结果 | 文本型 | | | 临时组 | 文本型 | | | i | 整数型 | | | 当前对 | 文本型 | | | 上一对 | 文本型 | | | 当前值 | 整数型 | | | 上一值 | 整数型 | | | 有效对计数 | 整数型 | | |
结果 = “”临时组 = “”上一对 = “”上一值 = -1 有效对计数 = 0 如果 (取文本长度 (源文本 ) % 2 ≠ 0 ) 源文本 = 取文本左边 (源文本, 取文本长度 (源文本 ) - 1 )   计次循环首 (取文本长度 (源文本 ) ÷ 2, i ) 当前对 = 取文本中间 (源文本, (i - 1 ) × 2 + 1, 2 )  如果 (是否为有效Hex对 (当前对 ))   当前值 = 十六进制到整数 (当前对 )  如果 (上一值 = -1 )     临时组 = 当前对    上一值 = 当前值    有效对计数 = 1    如果 (当前值 = 上一值 + 1 )       临时组 = 临时组 + 当前对     上一值 = 当前值     有效对计数 = 有效对计数 + 1        如果 (有效对计数 ≥ 2 )     如果 (结果 = “”)      结果 = 临时组       结果 = 结果 + “/” + 临时组                    临时组 = 当前对     上一值 = 当前值     有效对计数 = 1           如果 (有效对计数 ≥ 2 )   如果 (结果 = “”)    结果 = 临时组     结果 = 结果 + “/” + 临时组            临时组 = “”  上一值 = -1   有效对计数 = 0   计次循环尾 () 如果 (有效对计数 ≥ 2 ) 如果 (结果 = “”)  结果 = 临时组   结果 = 结果 + “/” + 临时组   返回 (结果 ) 如果 (取文本长度 (hex对 ) ≠ 2 ) 返回 (假)   计次循环首 (2, i ) 字符 = 取文本中间 (hex对, i, 1 ) 如果 (字符 ≥ “0” 且 字符 ≤ “9”)   如果 (字符 ≥ “A” 且 字符 ≤ “F”)     如果 (字符 ≥ “a” 且 字符 ≤ “f”)      返回 (假)          计次循环尾 ()返回 (真)变量名 | 类 型 | 静态 | 数组 | 备 注 | 结果 | 整数型 | | | i | 整数型 | | | 当前字符 | 文本型 | | | 当前值 | 整数型 | | |
结果 = 0 计次循环首 (取文本长度 (hex文本 ), i ) 当前字符 = 取文本中间 (hex文本, i, 1 ) 如果 (当前字符 ≥ “0” 且 当前字符 ≤ “9”)  当前值 = 取代码 (当前字符, ) - 取代码 (“0”, )  如果 (当前字符 ≥ “A” 且 当前字符 ≤ “F”)   当前值 = 取代码 (当前字符, ) - 取代码 (“A”, ) + 10    如果 (当前字符 ≥ “a” 且 当前字符 ≤ “f”)    当前值 = 取代码 (当前字符, ) - 取代码 (“a”, ) + 10    返回 (0 )          结果 = 结果 × 16 + 当前值 计次循环尾 ()返回 (结果 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 状态 | 整数型 | | | 结果 | 文本型 | | | 当前组 | 文本型 | | | 上一值 | 整数型 | | | i | 整数型 | | | 当前对 | 文本型 | | | 当前值 | 整数型 | | |
状态 = 0 结果 = “”当前组 = “”上一值 = -1 如果 (取文本长度 (源文本 ) % 2 ≠ 0 ) 源文本 = 取文本左边 (源文本, 取文本长度 (源文本 ) - 1 )   计次循环首 (取文本长度 (源文本 ) ÷ 2, i ) 当前对 = 取文本中间 (源文本, (i - 1 ) × 2 + 1, 2 ) 如果 (是否为有效Hex对 (当前对 ))   当前值 = 十六进制到整数 (当前对 )  判断 (状态 = 0 )    当前组 = 当前对    上一值 = 当前值    状态 = 1   判断 (状态 = 1 )    如果 (当前值 = 上一值 + 1 )    当前组 = 当前组 + 当前对     上一值 = 当前值     如果 (取文本长度 (当前组 ) ≥ 4 )      如果 (结果 ≠ “”)      结果 = 结果 + “/”                结果 = 结果 + 当前组             当前组 = 当前对    上一值 = 当前值                如果 (状态 = 1 且 取文本长度 (当前组 ) ≥ 4 )   如果 (结果 ≠ “”)    结果 = 结果 + “/”          结果 = 结果 + 当前组       当前组 = “”  上一值 = -1   状态 = 0   计次循环尾 () 如果 (状态 = 1 且 取文本长度 (当前组 ) ≥ 4 ) 如果 (结果 ≠ “”)  结果 = 结果 + “/”    结果 = 结果 + 当前组  返回 (结果 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 字节集 | 字节集 | | | 结果 | 文本型 | | | 当前组 | 文本型 | | | 上一值 | 整数型 | | | i | 整数型 | | | 高位 | 整数型 | | | 低位 | 整数型 | | | 当前值 | 整数型 | | |
字节集 = 到字节集 (源文本 )结果 = “”当前组 = “”上一值 = -1 计次循环首 (取字节集长度 (字节集 ) ÷ 2, i ) 高位 = 字节集 [ (i - 1 ) × 2 + 1 ] 低位 = 字节集 [ (i - 1 ) × 2 + 2 ]  当前值 = 位操作_组合Hex值 (高位, 低位 ) 如果 (当前值 ≠ -1 )   如果 (上一值 = -1 )   当前组 = 取十六进制文本 (当前值 )   上一值 = 当前值    如果 (当前值 = 上一值 + 1 )    当前组 = 当前组 + 取十六进制文本 (当前值 )    上一值 = 当前值     如果 (取文本长度 (当前组 ) ≥ 4 )     如果 (结果 ≠ “”)      结果 = 结果 + “/”                结果 = 结果 + 当前组             当前组 = 取十六进制文本 (当前值)    上一值 = 当前值          如果 (取文本长度 (当前组 ) ≥ 4 )   如果 (结果 ≠ “”)    结果 = 结果 + “/”          结果 = 结果 + 当前组       当前组 = “”  上一值 = -1   计次循环尾 () 如果 (取文本长度 (当前组 ) ≥ 4 ) 如果 (结果 ≠ “”)  结果 = 结果 + “/”    结果 = 结果 + 当前组  返回 (结果 )结果 = -1 判断 (高位 ≥ 取代码 (“0”, ) 且 高位 ≤ 取代码 (“9”, ))  结果 = (高位 - 取代码 (“0”, )) × 16 判断 (高位 ≥ 取代码 (“A”, ) 且 高位 ≤ 取代码 (“F”, ))  结果 = (高位 - 取代码 (“A”, ) + 10 ) × 16 判断 (高位 ≥ 取代码 (“a”, ) 且 高位 ≤ 取代码 (“f”, ))  结果 = (高位 - 取代码 (“a”, ) + 10 ) × 16 返回 (-1 ) 判断 (低位 ≥ 取代码 (“0”, ) 且 低位 ≤ 取代码 (“9”, ))  结果 = 结果 + 低位 - 取代码 (“0”, ) 判断 (低位 ≥ 取代码 (“A”, ) 且 低位 ≤ 取代码 (“F”, ))  结果 = 结果 + 低位 - 取代码 (“A”, ) + 10 判断 (低位 ≥ 取代码 (“a”, ) 且 低位 ≤ 取代码 (“f”, ))  结果 = 结果 + 低位 - 取代码 (“a”, ) + 10 返回 (-1 ) 返回 (结果 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 高位 | 整数型 | | | 低位 | 整数型 | | | 高位文本 | 文本型 | | | 低位文本 | 文本型 | | |
高位 = 值 ÷ 16 低位 = 值 % 16 如果 (高位 < 10 ) 高位文本 = 到文本 (高位 ) 判断 (高位 = 10 )  高位文本 = “A” 判断 (高位 = 11 )  高位文本 = “B” 判断 (高位 = 12 )  高位文本 = “C” 判断 (高位 = 13 )  高位文本 = “D” 判断 (高位 = 14 )  高位文本 = “E” 判断 (高位 = 15 )  高位文本 = “F”  高位文本 = “0”   如果 (低位 < 10 ) 低位文本 = 到文本 (低位 ) 判断 (低位 = 10 )  低位文本 = “A” 判断 (低位 = 11 )  低位文本 = “B” 判断 (低位 = 12 )  低位文本 = “C” 判断 (低位 = 13 )  低位文本 = “D” 判断 (低位 = 14 )  低位文本   
|
|