易语言将下载地址解析转换成迅雷快车旋风的方法

Base64解码

.版本 2
.程序集 程序集1
.子程序 Base64解码, 字节集, 公开
.参数 原文, 字节集
.局部变量 码表, 字节集
.局部变量 位置码表, 字节型, , "256"
.局部变量 结果, 字节集
.局部变量 原文长度, 整数型
.局部变量 补码, 整数型
.局部变量 i, 整数型
.局部变量 四字节数据, 字节型, , "4"
.局部变量 j, 整数型
原文长度 = 取字节集长度 (原文)
.如果真 (原文长度 = 0)
  返回 ({ })
.如果真结束
码表 = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47 }
.计次循环首 (64, i)
  位置码表 [码表 [i]] = i - 1
.计次循环尾 ()
补码 = 0
.判断开始 (取字节集右边 (原文, 2) = { 61, 61 })
  补码 = 2
.判断 (取字节集右边 (原文, 1) = { 61 })
  补码 = 1
.默认
.判断结束
结果 = 取空白字节集 (原文长度 ÷ 4 × 3)
j = 1
.变量循环首 (1, 原文长度 - 3, 4, i)
  四字节数据 [1] = 位置码表 [原文 [i]]
  四字节数据 [2] = 位置码表 [原文 [i + 1]]
  四字节数据 [3] = 位置码表 [原文 [i + 2]]
  四字节数据 [4] = 位置码表 [原文 [i + 3]]
  结果 [j] = 左移 (四字节数据 [1], 2) + 右移 (四字节数据 [2], 4)
  结果 [j + 1] = 左移 (四字节数据 [2], 4) + 右移 (四字节数据 [3], 2)
  结果 [j + 2] = 左移 (四字节数据 [3], 6) + 四字节数据 [4]
  j = j + 3
.变量循环尾 ()
.如果真 (补码 > 0)
  结果 = 取字节集左边 (结果, 取字节集长度 (结果) - 补码)
.如果真结束
返回 (结果)
.子程序 Base64编码, 字节集, 公开
.参数 原文, 字节集
.局部变量 余数, 整数型
.局部变量 三字节数据, 字节型, , "3"
.局部变量 码表, 字节集
.局部变量 len_x, 整数型
.局部变量 len_y, 整数型
.局部变量 结果, 字节集
.局部变量 i, 整数型
.局部变量 k, 整数型
len_x = 取字节集长度 (原文)
.如果真 (len_x < 1)
  返回 ({ })
.如果真结束
余数 = len_x % 3
.如果真 (余数 > 0)
  原文 = 原文 + 取空白字节集 (3 - 余数)
  len_x = len_x + 3 - 余数
.如果真结束
len_y = len_x × 4 ÷ 3
结果 = 取空白字节集 (len_y)
i = 1
码表 = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47 }
.变量循环首 (1, len_x, 3, k)
  三字节数据 [1] = 原文 [k]
  三字节数据 [2] = 原文 [k + 1]
  三字节数据 [3] = 原文 [k + 2]
  结果 [i] = 码表 [右移 (三字节数据 [1], 2) + 1]
  结果 [i + 1] = 码表 [左移 (位与 (三字节数据 [1], 3), 4) + 右移 (三字节数据 [2], 4) + 1]
  结果 [i + 2] = 码表 [左移 (位与 (三字节数据 [2], 15), 2) + 右移 (三字节数据 [3], 6) + 1]
  结果 [i + 3] = 码表 [位与 (三字节数据 [3], 63) + 1]
  i = i + 4
.变量循环尾 ()
.判断开始 (余数 = 2)
  结果 [len_y] = 61
.判断 (余数 = 1)
  结果 [len_y] = 61
  结果 [len_y - 1] = 61
.默认
.判断结束
返回 (结果)

下载地址解析转换

.版本 2
.支持库 spec
.程序集 窗口程序集1
.子程序 _地址转换_被单击
.判断开始 (地址编辑框.内容 ≠ “”)
  地址编辑框.内容 = 删首尾空 (地址编辑框.内容)
  .判断开始 (取文本左边 (地址编辑框.内容, 10) = “thunder://”)
    原始地址编辑框.内容 = 处理子程序 (1)
  .判断 (取文本左边 (地址编辑框.内容, 11) = “Flashget://”)
    原始地址编辑框.内容 = 处理子程序 (2)
  .判断 (取文本左边 (地址编辑框.内容, 7) = “qqdl://”)
    原始地址编辑框.内容 = 处理子程序 (3)
  .默认
    原始地址编辑框.内容 = 地址编辑框.内容
  .判断结束
  原始地址转换 ()
.默认
  信息框 (“请在输入需要转换的地址”, 48, “地址栏为空”)
.判断结束
.子程序 原始地址转换
迅雷地址编辑框.内容 = 返回迅雷 ()
flashget编辑框.内容 = 返回flashget ()
旋风地址编辑框.内容 = 返回旋风 ()
.子程序 处理子程序, 文本型
.参数 标识
.局部变量 文本, 文本型
.局部变量 文本1, 文本型
.局部变量 文本2, 文本型
.局部变量 文本3, 文本型
.局部变量 id, 整数型
.判断开始 (标识 = 1)
  文本 = 子文本替换 (地址编辑框.内容, “thunder://”, , , 2, 假)
  文本 = 子文本替换 (文本, “/”, , , , 真)
  文本 = 到文本 (Base64解码 (到字节集 (文本)))
  文本 = 子文本替换 (文本, “AA”, , , , 真)
  文本 = 子文本替换 (文本, “ZZ”, , , , 真)
.判断 (标识 = 2)
  文本 = 子文本替换 (地址编辑框.内容, “Flashget://”, , , 1, 真)
  id = 寻找文本 (文本, “&”, , 假)
  .判断开始 (id ≠ -1)
    文本 = 取文本左边 (文本, id - 1)
    调试输出 (文本)
  .默认
  .判断结束
  文本 = 到文本 (Base64解码 (到字节集 (文本)))
  文本 = 子文本替换 (文本, “[FLASHGET]”, , , 2, 假)
.判断 (标识 = 3)
  文本 = 子文本替换 (地址编辑框.内容, “qqdl://”, , , 2, 假)
  文本 = 到文本 (Base64解码 (到字节集 (文本)))
.默认
.判断结束
返回 (文本)
.子程序 返回迅雷, 文本型
.局部变量 文本, 文本型
文本 = 原始地址编辑框.内容
文本 = “AA” + 文本 + “ZZ”
文本 = “thunder://” + 到文本 (Base64编码 (到字节集 (文本)))
返回 (文本)
.子程序 返回flashget, 文本型
.局部变量 文本, 文本型
文本 = 原始地址编辑框.内容
文本 = “[FLASHGET]” + 文本 + “[FLASHGET]”
文本 = “Flashget://” + 到文本 (Base64编码 (到字节集 (文本))) + “&force”
返回 (文本)
.子程序 返回旋风, 文本型
.局部变量 文本, 文本型
文本 = 原始地址编辑框.内容
文本 = “qqdl://” + 到文本 (Base64编码 (到字节集 (文本)))
返回 (文本)
.子程序 _清空地址_被单击
连续赋值 (“”, 原始地址编辑框.内容, 迅雷地址编辑框.内容, flashget编辑框.内容, 旋风地址编辑框.内容, 地址编辑框.内容)

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对鸟哥教程(niaoge.com)的支持。如果你想了解更多相关内容请查看下面相关链接

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#niaoge.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。