|
- .版本 2
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- 输出调试文本 (迅雷URL编码 (“https://www.fedcba9876543210.com/”))
- 输出调试文本 (迅雷URL解码 (“thunder://QUFodHRwczovL3d3dy5mZWRjYmE5ODc2NTQzMjEwLmNvbS9aWg==”))
- .子程序 迅雷URL解码, 文本型, 公开, 将迅雷链接还原成普通链接,失败返回空文本
- .参数 迅雷链接, 文本型, , thunder:// 开头
- .参数 UTF8, 逻辑型, 可空, 是否使用UTF8,留空不使用
- .局部变量 Base64, 文本型
- .局部变量 URL, 文本型
- .如果真 (到小写 (迅雷链接) ≈ “thunder://” = 假)
- 返回 (“”)
- .如果真结束
- Base64 = 取文本右边 (迅雷链接, 取文本长度 (迅雷链接) - 10)
- .如果 (UTF8)
- URL = UTF8到文本 (Base64解码 (Base64))
- .否则
- URL = 到文本 (Base64解码 (Base64))
- .如果结束
- .如果真 (URL ≈ “AA” = 假 或 近似等于_尾 (URL, “ZZ”) = 假)
- 返回 (“”)
- .如果真结束
- 返回 (取文本中间 (URL, 3, 取文本长度 (URL) - 4))
- .子程序 迅雷URL编码, 文本型, 公开, 将普通链接转换成迅雷链接,失败返回空文本
- .参数 普通链接, 文本型
- .参数 UTF8, 逻辑型, 可空, 是否使用UTF8,留空不使用
- .如果真 (普通链接 = “”)
- 返回 (“”)
- .如果真结束
- .如果真 (UTF8)
- 返回 (“thunder://” + Base64编码 (文本到UTF8 (“AA” + 普通链接 + “ZZ”)))
- .如果真结束
- 返回 (“thunder://” + Base64编码 (到字节集 (“AA” + 普通链接 + “ZZ”)))
- .子程序 Base64编码, 文本型
- .参数 待编码数据, 字节集
- .局部变量 余数, 整数型
- .局部变量 临时, 字节型, , "3"
- .局部变量 计数2, 整数型
- .局部变量 集合, 字节集
- .局部变量 长度, 整数型
- .局部变量 返回值, 字节集
- .局部变量 计数, 整数型
- 长度 = 取字节集长度 (待编码数据)
- .如果真 (长度 < 1)
- 返回 (“”)
- .如果真结束
- 余数 = 长度 % 3
- .如果真 (余数 > 0)
- 待编码数据 = 待编码数据 + 取空白字节集 (3 - 余数)
- .如果真结束
- 长度 = 取字节集长度 (待编码数据)
- 返回值 = 取空白字节集 (长度 × 4 ÷ 3)
- 计数 = 1
- 集合 = 到字节集 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”)
- .变量循环首 (1, 长度, 3, 计数2)
- 临时 [1] = 待编码数据 [计数2]
- 临时 [2] = 待编码数据 [计数2 + 1]
- 临时 [3] = 待编码数据 [计数2 + 2]
- 返回值 [计数] = 集合 [右移 (临时 [1], 2) + 1]
- 返回值 [计数 + 1] = 集合 [左移 (位与 (临时 [1], 3), 4) + 右移 (临时 [2], 4) + 1]
- 返回值 [计数 + 2] = 集合 [左移 (位与 (临时 [2], 15), 2) + 右移 (临时 [3], 6) + 1]
- 返回值 [计数 + 3] = 集合 [位与 (临时 [3], 63) + 1]
- 计数 = 计数 + 4
- .变量循环尾 ()
- .如果真 (余数 > 0)
- 长度 = 取字节集长度 (返回值)
- .如果 (余数 = 1)
- 返回值 [长度 - 1] = 取代码 (“=”, )
- 返回值 [长度] = 取代码 (“=”, )
- .否则
- 返回值 [长度] = 取代码 (“=”, )
- .如果结束
- .如果真结束
- 返回 (到文本 (返回值))
- .子程序 Base64解码, 字节集
- .参数 待解码数据, 文本型
- .局部变量 文本长度, 整数型
- .局部变量 整倍数, 整数型
- .局部变量 三字节组, 字节型, , "3"
- .局部变量 四字节组, 字节型, , "4"
- .局部变量 编码值, 整数型
- .局部变量 计数, 整数型
- .局部变量 计数2, 整数型
- .局部变量 返回值, 字节集
- 待解码数据 = 删全部空 (待解码数据)
- 待解码数据 = 子文本替换 (待解码数据, #换行符, , , , 真)
- 文本长度 = 取文本长度 (待解码数据)
- 整倍数 = 文本长度 \ 4
- .如果真 (文本长度 % 4 ≠ 0)
- 整倍数 = 整倍数 + 1
- .如果真结束
- .计次循环首 (整倍数, 计数)
- .计次循环首 (4, 计数2)
- 四字节组 [计数2] = 取代码 (待解码数据, (计数 - 1) × 4 + 计数2)
- 编码值 = 寻找文本 (“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”, 字符 (四字节组 [计数2]), , 假)
- .如果真 (编码值 = -1)
- 跳出循环 ()
- .如果真结束
- 四字节组 [计数2] = 编码值 - 1
- .计次循环尾 ()
- 三字节组 [1] = 位或 (四字节组 [1] × 4, 四字节组 [2] ÷ 16)
- 三字节组 [2] = 位或 (四字节组 [2] × 16, 四字节组 [3] ÷ 4)
- 三字节组 [3] = 位或 (四字节组 [3] × 64, 四字节组 [4])
- 返回值 = 返回值 + 到字节集 (三字节组)
- 处理事件 ()
- .计次循环尾 ()
- .如果真 (计数2 < 5)
- 计数2 = 5 - 计数2
- 返回值 = 取字节集左边 (返回值, 取字节集长度 (返回值) - 计数2)
- .如果真结束
- 返回 (返回值)
- .子程序 近似等于_尾, 逻辑型, , 当比较文本在被比较文本的尾部被包容时返回真,否则返回假
- .参数 被比较文本, 文本型
- .参数 比较文本, 文本型
- .如果真 (比较文本 = “” 或 被比较文本 = “”)
- 返回 (假)
- .如果真结束
- 返回 (取文本右边 (被比较文本, 取文本长度 (比较文本)) = 比较文本)
复制代码 |
|