查看: 109|回复: 0

特殊号码源码

[复制链接]

89

主题

8

回帖

31

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
31
发表于 2025-10-1 14:26:31 | 显示全部楼层 |阅读模式
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
集_上字字节集  
集_下字字节集  
集_粗体字节集  
集_细体字节集  
集_圆圈字节集  
集_实心字节集  
集_双线字节集  
横竖逻辑型  
数字数组自定义  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
测试结果字节集  
结果字节集  
i整数型  
测试号文本型  
特殊号码字节集  
替换替换规则 0
置随机数种子 ()
清除数组 (数字数组.成员)
横竖 =   ' 设为假测试单独一行显示,设为真测试连续显示
初始化 ()
测试结果 = { 239, 187, 191 }  ' UTF-8 BOM
测试结果 = 测试结果 + 生成特殊字符 ()
计次循环首 (取数组成员数 (数字数组.成员), i)
如果 (横竖)
结果 = 结果 + 数字数组.成员 [i]{ 13, 10 }
如果 (i % 10 = 0)
结果 = 结果 + 数字数组.成员 [i]{ 13, 10 }
结果 = 结果 + 数字数组.成员 [i]


计次循环尾 ()
写到文件 (取特定目录 ( #系统桌面 )“\测试结果.txt”, 结果)
测试号 = “18812345678”
重定义数组 (替换, 真, 11)
计次循环首 (11, i)
替换 [i].位置啊 = 取随机数 (1, 11)
替换 [i].类型啊 = 取随机数 (1, 8)  ' 8个类型的特殊数字
计次循环尾 ()
特殊号码 = 混合替换数字 (测试号, 替换)
写到文件 (取特定目录 ( #系统桌面 )“\混合号码.txt”, { 239, 187, 191 } + 特殊号码)
结束 ()
子程序名返回值类型公开备 注
混合替换数字字节集 
参数名类 型参考可空数组备 注
原始文本文本型   
规则数组替换规则  
变量名类 型静态数组备 注
结果字节集  
i整数型  
j整数型  
当前字符文本型  
数字值整数型  
数组索引整数型  
默认类型整数型  
当前类型整数型  
' 默认规则:未指定的位置使用上标数字
默认类型 = 1
计次循环首 (取文本长度 (原始文本), i)
当前字符 = 取文本中间 (原始文本, i, 1)
' 查找当前字符的规则
当前类型 = 默认类型
计次循环首 (取数组成员数 (规则数组), j)
如果 (规则数组 [j].位置啊 = i)
当前类型 = 规则数组 [j].类型啊
跳出循环 ()



计次循环尾 ()
' 处理数字
如果 (当前字符 ≥ “0” 当前字符 ≤ “9”)
数字值 = 到整数 (当前字符)
数组索引 = 数字值 + 1 (当前类型 - 1) × 10
' 安全边界检查
如果 (数组索引 ≥ 1 数组索引 ≤ 取数组成员数 (数字数组.成员))
结果 = 结果 + 数字数组.成员 [数组索引]
结果 = 结果 + 到字节集 (当前字符)  ' 索引越界保持原样

结果 = 结果 + 到字节集 (当前字符)  ' 非数字字符原样保留

计次循环尾 ()
返回 (结果)
子程序名返回值类型公开备 注
混合替换数字1字节集 
参数名类 型参考可空数组备 注
原始文本文本型   
规则数组替换规则  
变量名类 型静态数组备 注
结果字节集  
i整数型  
j整数型  
当前字符文本型  
当前规则替换规则  
默认规则替换规则  
' 默认规则:未指定的位置使用上标数字
默认规则.类型啊 = 1
计次循环首 (取文本长度 (原始文本), i)
当前字符 = 取文本中间 (原始文本, i, 1)
' 查找当前字符的规则
当前规则 = 默认规则
计次循环首 (取数组成员数 (规则数组), j)
如果 (规则数组 [j].位置啊 = i)
当前规则 = 规则数组 [j]
跳出循环 ()



计次循环尾 ()
' 处理数字
如果 (是否数字 (当前字符))
结果 = 结果 + 数字数组.成员 [到整数 (当前字符) + 1 (当前规则.类型啊 - 1) × 10]
结果 = 结果 + 到字节集 (当前字符)

计次循环尾 ()
返回 (结果)
子程序名返回值类型公开备 注
是否数字逻辑型 
参数名类 型参考可空数组备 注
字符文本型   
变量名类 型静态数组备 注
编码整数型  
编码 = 取代码 (字符, )
返回 (编码 ≥ 48 编码 ≤ 57)  ' ASCII码中0=48, 9=57
子程序名返回值类型公开备 注
初始化  
' 上标数字(UTF-8编码)
集_上字 = { 226, 129, 176, 194, 185, 194, 178, 194, 179, 226, 129, 180, 226, 129, 181, 226, 129, 182, 226, 129, 183, 226, 129, 184, 226, 129, 185 }
' 下标数字(UTF-8编码)
集_下字 = { 226, 130, 128, 226, 130, 129, 226, 130, 130, 226, 130, 131, 226, 130, 132, 226, 130, 133, 226, 130, 134, 226, 130, 135, 226, 130, 136, 226, 130, 137 }
' 数学细体数字(UTF-8编码)
集_细体 = { 240, 157, 159, 182, 240, 157, 159, 183, 240, 157, 159, 184, 240, 157, 159, 185, 240, 157, 159, 186, 240, 157, 159, 187, 240, 157, 159, 188, 240, 157, 159, 189, 240, 157, 159, 190, 240, 157, 159, 191 }
' 数学粗体数字(UTF-8编码)
集_粗体 = { 240, 157, 159, 142, 240, 157, 159, 143, 240, 157, 159, 144, 240, 157, 159, 145, 240, 157, 159, 146, 240, 157, 159, 147, 240, 157, 159, 148, 240, 157, 159, 149, 240, 157, 159, 150, 240, 157, 159, 151 }
' 双线数字(UTF-8编码)
集_双线 = { 240, 157, 159, 152, 240, 157, 159, 153, 240, 157, 159, 154, 240, 157, 159, 155, 240, 157, 159, 156, 240, 157, 159, 157, 240, 157, 159, 158, 240, 157, 159, 159, 240, 157, 159, 160, 240, 157, 159, 161 }
' 实心数字(UTF-8编码)
集_实心 = { 226, 147, 191, 226, 157, 182, 226, 157, 183, 226, 157, 184, 226, 157, 185, 226, 157, 186, 226, 157, 187, 226, 157, 188, 226, 157, 189, 226, 157, 190 }
' 圆圈数字(UTF-8编码)
集_圆圈 = { 226, 147, 170, 226, 145, 160, 226, 145, 161, 226, 145, 162, 226, 145, 163, 226, 145, 164, 226, 145, 165, 226, 145, 166, 226, 145, 167, 226, 145, 168 }
清除数组 (数字数组.成员)
自动拆分字节集 (集_上字, 数字数组.成员)
自动拆分字节集 (集_下字, 数字数组.成员, 3)
自动拆分字节集 (集_细体, 数字数组.成员, 4)
自动拆分字节集 (集_粗体, 数字数组.成员, 4)
自动拆分字节集 (集_双线, 数字数组.成员, 4)
自动拆分字节集 (集_实心, 数字数组.成员, 3)
自动拆分字节集 (集_圆圈, 数字数组.成员, 3)
子程序名返回值类型公开备 注
自动拆分字节集  
参数名类 型参考可空数组备 注
源字节集字节集   
目标数组字节集  
单字符长度整数型  
变量名类 型静态数组备 注
当前位置整数型  
当前长度整数型  
总长度整数型  
安全计数器整数型 ' 防止无限循环
总长度 = 取字节集长度 (源字节集)
当前位置 = 1
安全计数器 = 0
判断循环首 (当前位置 ≤ 总长度 安全计数器 < 100)  ' 最多处理100字符防止死循环
安全计数器 = 安全计数器 + 1
' 确定当前字符长度
如果 (是否为空 (单字符长度))
如果 (当前位置 + 1 ≤ 总长度 源字节集 [当前位置] = 194)
当前长度 = 2  ' 处理2字节字符(123)
当前长度 = 3  ' 默认按3字节

当前长度 = 单字符长度

' 严格边界检查
如果 (当前位置 + 当前长度 - 1 > 总长度)
输出调试文本 (“警告:跳过不完整字符,位置=”到文本 (当前位置))
跳出循环 ()



' 添加到数组
重定义数组 (目标数组, 真, 取数组成员数 (目标数组) + 1)
目标数组 [取数组成员数 (目标数组)]取字节集中间 (源字节集, 当前位置, 当前长度)
当前位置 = 当前位置 + 当前长度
判断循环尾 ()
子程序名返回值类型公开备 注
生成特殊字符字节集 
变量名类 型静态数组备 注
结果字节集  
换行符字节集  
换行符 = { 13, 10 }
' 上标数字(特殊处理2字节字符)
结果 = 结果 + 生成上标数字 () + 换行符
' 其他字符集(统一处理)
结果 = 结果 + 生成字符集 (集_下字, 3) + 换行符  ' 下标
结果 = 结果 + 生成字符集 (集_细体, 4) + 换行符  ' 细体
结果 = 结果 + 生成字符集 (集_粗体, 4) + 换行符  ' 粗体
结果 = 结果 + 生成字符集 (集_双线, 4) + 换行符  ' 双线
结果 = 结果 + 生成字符集 (集_实心, 3) + 换行符  ' 实心
结果 = 结果 + 生成字符集 (集_圆圈, 3)
返回 (结果)
子程序名返回值类型公开备 注
生成上标数字字节集 
变量名类 型静态数组备 注
结果字节集  
当前位置整数型  
换行符字节集  
换行符 = { 13, 10 }
当前位置 = 1
判断循环首 (当前位置 ≤ 取字节集长度 (集_上字))
如果 (当前位置 + 1 ≤ 取字节集长度 (集_上字) 集_上字 [当前位置] = 194)
结果 = 结果 + 取字节集中间 (集_上字, 当前位置, 2)  ' 处理2字节字符(123)
当前位置 = 当前位置 + 2
如果 (当前位置 + 2 ≤ 取字节集长度 (集_上字))
结果 = 结果 + 取字节集中间 (集_上字, 当前位置, 3)  ' 处理3字节字符
当前位置 = 当前位置 + 3
跳出循环 ()


如果 (横竖 = 当前位置 ≤ 取字节集长度 (集_上字))
结果 = 结果 + 换行符



判断循环尾 ()
返回 (结果)
子程序名返回值类型公开备 注
生成字符集字节集 
参数名类 型参考可空数组备 注
字符集字节集   
单字符长度整数型   
变量名类 型静态数组备 注
结果字节集  
i整数型  
换行符字节集  
换行符 = { 13, 10 }
计次循环首 (取字节集长度 (字符集) ÷ 单字符长度, i)
结果 = 结果 + 取字节集中间 (字符集, (i - 1) × 单字符长度 + 1, 单字符长度)
如果 (横竖 = i < 取字节集长度 (字符集) ÷ 单字符长度)
结果 = 结果 + 换行符



计次循环尾 ()
返回 (结果)
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
集_上字字节集  
集_下字字节集  
集_粗体字节集  
集_细体字节集  
集_圆圈字节集  
集_实心字节集  
集_双线字节集  
横竖逻辑型  
数字数组自定义  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
测试结果字节集  
结果字节集  
i整数型  
测试号文本型  
特殊号码字节集  
替换替换规则 0
置随机数种子 ()
清除数组 (数字数组.成员)
横竖 =   ' 设为假测试单独一行显示,设为真测试连续显示
初始化 ()
测试结果 = { 239, 187, 191 }  ' UTF-8 BOM
测试结果 = 测试结果 + 生成特殊字符 ()
计次循环首 (取数组成员数 (数字数组.成员), i)
如果 (横竖)
结果 = 结果 + 数字数组.成员 [i]{ 13, 10 }
如果 (i % 10 = 0)
结果 = 结果 + 数字数组.成员 [i]{ 13, 10 }
结果 = 结果 + 数字数组.成员 [i]


计次循环尾 ()
写到文件 (取特定目录 ( #系统桌面 )“\测试结果.txt”, 结果)
测试号 = “18812345678”
重定义数组 (替换, 真, 11)
计次循环首 (11, i)
替换 [i].位置啊 = 取随机数 (1, 11)
替换 [i].类型啊 = 取随机数 (1, 8)  ' 8个类型的特殊数字
计次循环尾 ()
特殊号码 = 混合替换数字 (测试号, 替换)
写到文件 (取特定目录 ( #系统桌面 )“\混合号码.txt”, { 239, 187, 191 } + 特殊号码)
结束 ()
子程序名返回值类型公开备 注
混合替换数字字节集 
参数名类 型参考可空数组备 注
原始文本文本型   
规则数组替换规则  
变量名类 型静态数组备 注
结果字节集  
i整数型  
j整数型  
当前字符文本型  
数字值整数型  
数组索引整数型  
默认类型整数型  
当前类型整数型  
' 默认规则:未指定的位置使用上标数字
默认类型 = 1
计次循环首 (取文本长度 (原始文本), i)
当前字符 = 取文本中间 (原始文本, i, 1)
' 查找当前字符的规则
当前类型 = 默认类型
计次循环首 (取数组成员数 (规则数组), j)
如果 (规则数组 [j].位置啊 = i)
当前类型 = 规则数组 [j].类型啊
跳出循环 ()



计次循环尾 ()
' 处理数字
如果 (当前字符 ≥ “0” 当前字符 ≤ “9”)
数字值 = 到整数 (当前字符)
数组索引 = 数字值 + 1 (当前类型 - 1) × 10
' 安全边界检查
如果 (数组索引 ≥ 1 数组索引 ≤ 取数组成员数 (数字数组.成员))
结果 = 结果 + 数字数组.成员 [数组索引]
结果 = 结果 + 到字节集 (当前字符)  ' 索引越界保持原样

结果 = 结果 + 到字节集 (当前字符)  ' 非数字字符原样保留

计次循环尾 ()
返回 (结果)
子程序名返回值类型公开备 注
混合替换数字1字节集 
参数名类 型参考可空数组备 注
原始文本文本型   
规则数组替换规则  
变量名类 型静态数组备 注
结果字节集  
i整数型  
j整数型  
当前字符文本型  
当前规则替换规则  
默认规则替换规则  
' 默认规则:未指定的位置使用上标数字
默认规则.类型啊 = 1
计次循环首 (取文本长度 (原始文本), i)
当前字符 = 取文本中间 (原始文本, i, 1)
' 查找当前字符的规则
当前规则 = 默认规则
计次循环首 (取数组成员数 (规则数组), j)
如果 (规则数组 [j].位置啊 = i)
当前规则 = 规则数组 [j]
跳出循环 ()



计次循环尾 ()
' 处理数字
如果 (是否数字 (当前字符))
结果 = 结果 + 数字数组.成员 [到整数 (当前字符) + 1 (当前规则.类型啊 - 1) × 10]
结果 = 结果 + 到字节集 (当前字符)

计次循环尾 ()
返回 (结果)
子程序名返回值类型公开备 注
是否数字逻辑型 
参数名类 型参考可空数组备 注
字符文本型   
变量名类 型静态数组备 注
编码整数型  
编码 = 取代码 (字符, )
返回 (编码 ≥ 48 编码 ≤ 57)  ' ASCII码中0=48, 9=57
子程序名返回值类型公开备 注
初始化  
' 上标数字(UTF-8编码)
集_上字 = { 226, 129, 176, 194, 185, 194, 178, 194, 179, 226, 129, 180, 226, 129, 181, 226, 129, 182, 226, 129, 183, 226, 129, 184, 226, 129, 185 }
' 下标数字(UTF-8编码)
集_下字 = { 226, 130, 128, 226, 130, 129, 226, 130, 130, 226, 130, 131, 226, 130, 132, 226, 130, 133, 226, 130, 134, 226, 130, 135, 226, 130, 136, 226, 130, 137 }
' 数学细体数字(UTF-8编码)
集_细体 = { 240, 157, 159, 182, 240, 157, 159, 183, 240, 157, 159, 184, 240, 157, 159, 185, 240, 157, 159, 186, 240, 157, 159, 187, 240, 157, 159, 188, 240, 157, 159, 189, 240, 157, 159, 190, 240, 157, 159, 191 }
' 数学粗体数字(UTF-8编码)
集_粗体 = { 240, 157, 159, 142, 240, 157, 159, 143, 240, 157, 159, 144, 240, 157, 159, 145, 240, 157, 159, 146, 240, 157, 159, 147, 240, 157, 159, 148, 240, 157, 159, 149, 240, 157, 159, 150, 240, 157, 159, 151 }
' 双线数字(UTF-8编码)
集_双线 = { 240, 157, 159, 152, 240, 157, 159, 153, 240, 157, 159, 154, 240, 157, 159, 155, 240, 157, 159, 156, 240, 157, 159, 157, 240, 157, 159, 158, 240, 157, 159, 159, 240, 157, 159, 160, 240, 157, 159, 161 }
' 实心数字(UTF-8编码)
集_实心 = { 226, 147, 191, 226, 157, 182, 226, 157, 183, 226, 157, 184, 226, 157, 185, 226, 157, 186, 226, 157, 187, 226, 157, 188, 226, 157, 189, 226, 157, 190 }
' 圆圈数字(UTF-8编码)
集_圆圈 = { 226, 147, 170, 226, 145, 160, 226, 145, 161, 226, 145, 162, 226, 145, 163, 226, 145, 164, 226, 145, 165, 226, 145, 166, 226, 145, 167, 226, 145, 168 }
清除数组 (数字数组.成员)
自动拆分字节集 (集_上字, 数字数组.成员)
自动拆分字节集 (集_下字, 数字数组.成员, 3)
自动拆分字节集 (集_细体, 数字数组.成员, 4)
自动拆分字节集 (集_粗体, 数字数组.成员, 4)
自动拆分字节集 (集_双线, 数字数组.成员, 4)
自动拆分字节集 (集_实心, 数字数组.成员, 3)
自动拆分字节集 (集_圆圈, 数字数组.成员, 3)
子程序名返回值类型公开备 注
自动拆分字节集  
参数名类 型参考可空数组备 注
源字节集字节集   
目标数组字节集  
单字符长度整数型  
变量名类 型静态数组备 注
当前位置整数型  
当前长度整数型  
总长度整数型  
安全计数器整数型 ' 防止无限循环
总长度 = 取字节集长度 (源字节集)
当前位置 = 1
安全计数器 = 0
判断循环首 (当前位置 ≤ 总长度 安全计数器 < 100)  ' 最多处理100字符防止死循环
安全计数器 = 安全计数器 + 1
' 确定当前字符长度
如果 (是否为空 (单字符长度))
如果 (当前位置 + 1 ≤ 总长度 源字节集 [当前位置] = 194)
当前长度 = 2  ' 处理2字节字符(123)
当前长度 = 3  ' 默认按3字节

当前长度 = 单字符长度

' 严格边界检查
如果 (当前位置 + 当前长度 - 1 > 总长度)
输出调试文本 (“警告:跳过不完整字符,位置=”到文本 (当前位置))
跳出循环 ()



' 添加到数组
重定义数组 (目标数组, 真, 取数组成员数 (目标数组) + 1)
目标数组 [取数组成员数 (目标数组)]取字节集中间 (源字节集, 当前位置, 当前长度)
当前位置 = 当前位置 + 当前长度
判断循环尾 ()
子程序名返回值类型公开备 注
生成特殊字符字节集 
变量名类 型静态数组备 注
结果字节集  
换行符字节集  
换行符 = { 13, 10 }
' 上标数字(特殊处理2字节字符)
结果 = 结果 + 生成上标数字 () + 换行符
' 其他字符集(统一处理)
结果 = 结果 + 生成字符集 (集_下字, 3) + 换行符  ' 下标
结果 = 结果 + 生成字符集 (集_细体, 4) + 换行符  ' 细体
结果 = 结果 + 生成字符集 (集_粗体, 4) + 换行符  ' 粗体
结果 = 结果 + 生成字符集 (集_双线, 4) + 换行符  ' 双线
结果 = 结果 + 生成字符集 (集_实心, 3) + 换行符  ' 实心
结果 = 结果 + 生成字符集 (集_圆圈, 3)
返回 (结果)
子程序名返回值类型公开备 注
生成上标数字字节集 
变量名类 型静态数组备 注
结果字节集  
当前位置整数型  
换行符字节集  
换行符 = { 13, 10 }
当前位置 = 1
判断循环首 (当前位置 ≤ 取字节集长度 (集_上字))
如果 (当前位置 + 1 ≤ 取字节集长度 (集_上字) 集_上字 [当前位置] = 194)
结果 = 结果 + 取字节集中间 (集_上字, 当前位置, 2)  ' 处理2字节字符(123)
当前位置 = 当前位置 + 2
如果 (当前位置 + 2 ≤ 取字节集长度 (集_上字))
结果 = 结果 + 取字节集中间 (集_上字, 当前位置, 3)  ' 处理3字节字符
当前位置 = 当前位置 + 3
跳出循环 ()


如果 (横竖 = 当前位置 ≤ 取字节集长度 (集_上字))
结果 = 结果 + 换行符



判断循环尾 ()
返回 (结果)
子程序名返回值类型公开备 注
生成字符集字节集 
参数名类 型参考可空数组备 注
字符集字节集   
单字符长度整数型   
变量名类 型静态数组备 注
结果字节集  
i整数型  
换行符字节集  
换行符 = { 13, 10 }
计次循环首 (取字节集长度 (字符集) ÷ 单字符长度, i)
结果 = 结果 + 取字节集中间 (字符集, (i - 1) × 单字符长度 + 1, 单字符长度)
如果 (横竖 = i < 取字节集长度 (字符集) ÷ 单字符长度)
结果 = 结果 + 换行符



计次循环尾 ()
返回 (结果)
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
集_上字字节集  
集_下字字节集  
集_粗体字节集  
集_细体字节集  
集_圆圈字节集  
集_实心字节集  
集_双线字节集  
横竖逻辑型  
数字数组自定义  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
测试结果字节集  
结果字节集  
i整数型  
测试号文本型  
特殊号码字节集  
替换替换规则 0
置随机数种子 ()
清除数组 (数字数组.成员)
横竖 =   ' 设为假测试单独一行显示,设为真测试连续显示
初始化 ()
测试结果 = { 239, 187, 191 }  ' UTF-8 BOM
测试结果 = 测试结果 + 生成特殊字符 ()
计次循环首 (取数组成员数 (数字数组.成员), i)
如果 (横竖)
结果 = 结果 + 数字数组.成员 [i]{ 13, 10 }
如果 (i % 10 = 0)
结果 = 结果 + 数字数组.成员 [i]{ 13, 10 }
结果 = 结果 + 数字数组.成员 [i]


计次循环尾 ()
写到文件 (取特定目录 ( #系统桌面 )“\测试结果.txt”, 结果)
测试号 = “18812345678”
重定义数组 (替换, 真, 11)
计次循环首 (11, i)
替换 [i].位置啊 = 取随机数 (1, 11)
替换 [i].类型啊 = 取随机数 (1, 8)  ' 8个类型的特殊数字
计次循环尾 ()
特殊号码 = 混合替换数字 (测试号, 替换)
写到文件 (取特定目录 ( #系统桌面 )“\混合号码.txt”, { 239, 187, 191 } + 特殊号码)
结束 ()
子程序名返回值类型公开备 注
混合替换数字字节集 
参数名类 型参考可空数组备 注
原始文本文本型   
规则数组替换规则  
变量名类 型静态数组备 注
结果字节集  
i整数型  
j整数型  
当前字符文本型  
数字值整数型  
数组索引整数型  
默认类型整数型  
当前类型整数型  
' 默认规则:未指定的位置使用上标数字
默认类型 = 1
计次循环首 (取文本长度 (原始文本), i)
当前字符 = 取文本中间 (原始文本, i, 1)
' 查找当前字符的规则
当前类型 = 默认类型
计次循环首 (取数组成员数 (规则数组), j)
如果 (规则数组 [j].位置啊 = i)
当前类型 = 规则数组 [j].类型啊
跳出循环 ()



计次循环尾 ()
' 处理数字
如果 (当前字符 ≥ “0” 当前字符 ≤ “9”)
数字值 = 到整数 (当前字符)
数组索引 = 数字值 + 1 (当前类型 - 1) × 10
' 安全边界检查
如果 (数组索引 ≥ 1 数组索引 ≤ 取数组成员数 (数字数组.成员))
结果 = 结果 + 数字数组.成员 [数组索引]
结果 = 结果 + 到字节集 (当前字符)  ' 索引越界保持原样

结果 = 结果 + 到字节集 (当前字符)  ' 非数字字符原样保留

计次循环尾 ()
返回 (结果)
子程序名返回值类型公开备 注
混合替换数字1字节集 
参数名类 型参考可空数组备 注
原始文本文本型   
规则数组替换规则  
变量名类 型静态数组备 注
结果字节集  
i整数型  
j整数型  
当前字符文本型  
当前规则替换规则  
默认规则替换规则  
' 默认规则:未指定的位置使用上标数字
默认规则.类型啊 = 1
计次循环首 (取文本长度 (原始文本), i)
当前字符 = 取文本中间 (原始文本, i, 1)
' 查找当前字符的规则
当前规则 = 默认规则
计次循环首 (取数组成员数 (规则数组), j)
如果 (规则数组 [j].位置啊 = i)
当前规则 = 规则数组 [j]
跳出循环 ()



计次循环尾 ()
' 处理数字
如果 (是否数字 (当前字符))
结果 = 结果 + 数字数组.成员 [到整数 (当前字符) + 1 (当前规则.类型啊 - 1) × 10]
结果 = 结果 + 到字节集 (当前字符)

计次循环尾 ()
返回 (结果)
子程序名返回值类型公开备 注
是否数字逻辑型 
参数名类 型参考可空数组备 注
字符文本型   
变量名类 型静态数组备 注
编码整数型  
编码 = 取代码 (字符, )
返回 (编码 ≥ 48 编码 ≤ 57)  ' ASCII码中0=48, 9=57
子程序名返回值类型公开备 注
初始化  
' 上标数字(UTF-8编码)
集_上字 = { 226, 129, 176, 194, 185, 194, 178, 194, 179, 226, 129, 180, 226, 129, 181, 226, 129, 182, 226, 129, 183, 226, 129, 184, 226, 129, 185 }
' 下标数字(UTF-8编码)
集_下字 = { 226, 130, 128, 226, 130, 129, 226, 130, 130, 226, 130, 131, 226, 130, 132, 226, 130, 133, 226, 130, 134, 226, 130, 135, 226, 130, 136, 226, 130, 137 }
' 数学细体数字(UTF-8编码)
集_细体 = { 240, 157, 159, 182, 240, 157, 159, 183, 240, 157, 159, 184, 240, 157, 159, 185, 240, 157, 159, 186, 240, 157, 159, 187, 240, 157, 159, 188, 240, 157, 159, 189, 240, 157, 159, 190, 240, 157, 159, 191 }
' 数学粗体数字(UTF-8编码)
集_粗体 = { 240, 157, 159, 142, 240, 157, 159, 143, 240, 157, 159, 144, 240, 157, 159, 145, 240, 157, 159, 146, 240, 157, 159, 147, 240, 157, 159, 148, 240, 157, 159, 149, 240, 157, 159, 150, 240, 157, 159, 151 }
' 双线数字(UTF-8编码)
集_双线 = { 240, 157, 159, 152, 240, 157, 159, 153, 240, 157, 159, 154, 240, 157, 159, 155, 240, 157, 159, 156, 240, 157, 159, 157, 240, 157, 159, 158, 240, 157, 159, 159, 240, 157, 159, 160, 240, 157, 159, 161 }
' 实心数字(UTF-8编码)
集_实心 = { 226, 147, 191, 226, 157, 182, 226, 157, 183, 226, 157, 184, 226, 157, 185, 226, 157, 186, 226, 157, 187, 226, 157, 188, 226, 157, 189, 226, 157, 190 }
' 圆圈数字(UTF-8编码)
集_圆圈 = { 226, 147, 170, 226, 145, 160, 226, 145, 161, 226, 145, 162, 226, 145, 163, 226, 145, 164, 226, 145, 165, 226, 145, 166, 226, 145, 167, 226, 145, 168 }
清除数组 (数字数组.成员)
自动拆分字节集 (集_上字, 数字数组.成员)
自动拆分字节集 (集_下字, 数字数组.成员, 3)
自动拆分字节集 (集_细体, 数字数组.成员, 4)
自动拆分字节集 (集_粗体, 数字数组.成员, 4)
自动拆分字节集 (集_双线, 数字数组.成员, 4)
自动拆分字节集 (集_实心, 数字数组.成员, 3)
自动拆分字节集 (集_圆圈, 数字数组.成员, 3)
子程序名返回值类型公开备 注
自动拆分字节集  
参数名类 型参考可空数组备 注
源字节集字节集   
目标数组字节集  
单字符长度整数型  
变量名类 型静态数组备 注
当前位置整数型  
当前长度整数型  
总长度整数型  
安全计数器整数型 ' 防止无限循环
总长度 = 取字节集长度 (源字节集)
当前位置 = 1
安全计数器 = 0
判断循环首 (当前位置 ≤ 总长度 安全计数器 < 100)  ' 最多处理100字符防止死循环
安全计数器 = 安全计数器 + 1
' 确定当前字符长度
如果 (是否为空 (单字符长度))
如果 (当前位置 + 1 ≤ 总长度 源字节集 [当前位置] = 194)
当前长度 = 2  ' 处理2字节字符(123)
当前长度 = 3  ' 默认按3字节

当前长度 = 单字符长度

' 严格边界检查
如果 (当前位置 + 当前长度 - 1 > 总长度)
输出调试文本 (“警告:跳过不完整字符,位置=”到文本 (当前位置))
跳出循环 ()



' 添加到数组
重定义数组 (目标数组, 真, 取数组成员数 (目标数组) + 1)
目标数组 [取数组成员数 (目标数组)]取字节集中间 (源字节集, 当前位置, 当前长度)
当前位置 = 当前位置 + 当前长度
判断循环尾 ()
子程序名返回值类型公开备 注
生成特殊字符字节集 
变量名类 型静态数组备 注
结果字节集  
换行符字节集  
换行符 = { 13, 10 }
' 上标数字(特殊处理2字节字符)
结果 = 结果 + 生成上标数字 () + 换行符
' 其他字符集(统一处理)
结果 = 结果 + 生成字符集 (集_下字, 3) + 换行符  ' 下标
结果 = 结果 + 生成字符集 (集_细体, 4) + 换行符  ' 细体
结果 = 结果 + 生成字符集 (集_粗体, 4) + 换行符  ' 粗体
结果 = 结果 + 生成字符集 (集_双线, 4) + 换行符  ' 双线
结果 = 结果 + 生成字符集 (集_实心, 3) + 换行符  ' 实心
结果 = 结果 + 生成字符集 (集_圆圈, 3)
返回 (结果)
子程序名返回值类型公开备 注
生成上标数字字节集 
变量名类 型静态数组备 注
结果字节集  
当前位置整数型  
换行符字节集  
换行符 = { 13, 10 }
当前位置 = 1
判断循环首 (当前位置 ≤ 取字节集长度 (集_上字))
如果 (当前位置 + 1 ≤ 取字节集长度 (集_上字) 集_上字 [当前位置] = 194)
结果 = 结果 + 取字节集中间 (集_上字, 当前位置, 2)  ' 处理2字节字符(123)
当前位置 = 当前位置 + 2
如果 (当前位置 + 2 ≤ 取字节集长度 (集_上字))
结果 = 结果 + 取字节集中间 (集_上字, 当前位置, 3)  ' 处理3字节字符
当前位置 = 当前位置 + 3
跳出循环 ()


如果 (横竖 = 当前位置 ≤ 取字节集长度 (集_上字))
结果 = 结果 + 换行符



判断循环尾 ()
返回 (结果)
子程序名返回值类型公开备 注
生成字符集字节集 
参数名类 型参考可空数组备 注
字符集字节集   
单字符长度整数型   
变量名类 型静态数组备 注
结果字节集  
i整数型  
换行符字节集  
换行符 = { 13, 10 }
计次循环首 (取字节集长度 (字符集) ÷ 单字符长度, i)
结果 = 结果 + 取字节集中间 (字符集, (i - 1) × 单字符长度 + 1, 单字符长度)
如果 (横竖 = i < 取字节集长度 (字符集) ÷ 单字符长度)
结果 = 结果 + 换行符



计次循环尾 ()
返回 (结果)



  
数据类型名公开备 注
自定义 
成员名类 型传址数组备 注
成员字节集 1
数据类型名公开备 注
替换规则 
成员名类 型传址数组备 注
位置啊整数型  
类型啊整数型  


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表