易语言怎么通过计算替换字节实现酷狗音乐缓存文件转MP3

发布时间:2021-06-16 15:51:42 作者:小新
来源:亿速云 阅读:191

这篇文章将为大家详细讲解有关易语言怎么通过计算替换字节实现酷狗音乐缓存文件转MP3,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

DLL命令表

.版本 2
.DLL命令 创建线程_, 整数型, "kernel32", "CreateThread", , CreateThread建立新的线索
  .参数 lpThreadAttributes, 整数型, , 0
  .参数 dwStackSize, 整数型, , 0
  .参数 lpStartAddress, 子程序指针
  .参数 lpParameter, 整数型
  .参数 dwCreationFlags, 整数型, , 0
  .参数 lpThreadId, 整数型, , 线程ID
.DLL命令 _创建许可证, , "kernel32", "InitializeCriticalSection", , 创建许可证
  .参数 lpCriticalSection, 多线程许可证, 传址
.DLL命令 _删除许可证, , "kernel32", "DeleteCriticalSection", , 删除许可证
  .参数 lpCriticalSection, 多线程许可证, 传址
.DLL命令 _进入许可区, , "kernel32", "EnterCriticalSection", , 进入许可区
  .参数 lpCriticalSection, 多线程许可证, 传址
.DLL命令 _退出许可区, , "kernel32", "LeaveCriticalSection", , 退出许可区
  .参数 lpCriticalSection, 多线程许可证, 传址
.DLL命令 线程_挂起, 整数型, "kernel32", "SuspendThread"
  .参数 hThread, 整数型
.DLL命令 线程_恢复, 整数型, "kernel32", "ResumeThread"
  .参数 hThread, 整数型

自定义数据类型表

.版本 2
.数据类型 多线程许可证, 公开
  .成员 DebugInfo, 整数型
  .成员 LockCount, 整数型
  .成员 RecursionCount, 整数型
  .成员 OwningThread, 整数型
  .成员 LockSemaphore, 整数型
  .成员 SpinCount, 整数型

酷狗kgtemp转MP3的代码

.版本 2
.支持库 iext
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 许可证, 多线程许可证
.程序集变量 线程数, 整数型
.程序集变量 handle, 整数型, , "0"
.程序集变量 是否暂停, 逻辑型
.程序集变量 是否停止, 逻辑型
.子程序 __启动窗口_创建完毕
路径编辑框.内容 = 取运行目录 () + “\mp3\”
_创建许可证 (许可证)
输出调试文本 (许可证.DebugInfo)
.子程序 _按钮生成_被单击
.局部变量 初始目录, 文本型
.局部变量 文件, 文本型
.局部变量 索引, 整数型
.局部变量 数值1, 文本型
.局部变量 i, 整数型
按钮开始.禁止 = 假
超级列表框1.表项 = { }
i = 0
初始目录 = 取运行目录 () + “\”
文件 = 寻找文件 (初始目录 + “*.kgtemp”, )
.循环判断首 ()
  .如果真 (文件是否存在 (初始目录 + 文件))
    i = i + 1
    索引 = 超级列表框1.插入表项 (, , , , , )
    超级列表框1.置标题 (索引, 0, 到文本 (i))
    超级列表框1.置标题 (索引, 1, 初始目录 + 文件)
    超级列表框1.置标题 (索引, 2, “待转”)
  .如果真结束
  文件 = 寻找文件 (, )
.循环判断尾 (文件 ≠ “”)
.子程序 _按钮开始_被单击
.如果真 (文件是否存在 (路径编辑框.内容) = 假)
  创建目录 (路径编辑框.内容)
.如果真结束
是否停止 = 假
按钮开始.禁止 = 真
按钮生成.禁止 = 真
按钮停止.禁止 = 假
按钮暂停.禁止 = 假
多线程启动 ()
按钮生成.禁止 = 假
按钮停止.禁止 = 真
按钮暂停.禁止 = 真
按钮开始.禁止 = 假
.子程序 单线程转换
.参数 表项, 整数型
.局部变量 文件路径, 文本型
.局部变量 文件名, 文本型
.局部变量 mp3, 字节集
文件路径 = 超级列表框1.取标题 (表项, 1)
文件名 = 取文本右边 (文件路径, 取文本长度 (文件路径) - 倒找文本 (文件路径, “\”, , 假))
mp3 = kgtemp转MP3 (文件路径)
.如果 (mp3 ≠ { })
  .如果 (写到文件 (路径编辑框.内容 + 文件名 + “.mp3”, mp3))
    超级列表框1.置标题 (表项, 2, “完成”)
  .否则
    超级列表框1.置标题 (表项, 2, “失败”)
  .如果结束
.否则
  超级列表框1.置标题 (表项, 2, “失败”)
.如果结束
超级列表框1.保证显示 (表项)
_进入许可区 (许可证)
线程数 = 线程数 - 1
_退出许可区 (许可证)
.子程序 多线程启动
.局部变量 数量, 整数型
.局部变量 i, 整数型
数量 = 超级列表框1.取表项数 ()
重定义数组 (handle, 假, 数量) ' 防止数组越界
.计次循环首 (数量, i)
  .如果真 (是否停止)
    跳出循环 ()
  .如果真结束
  .判断循环首 (是否暂停)
    延迟 (200) ' 如果单击了暂停按钮,程序就停在此处无限循环,直到单击恢复。
  .判断循环尾 ()
  创建线程_ (0, 0, &单线程转换, i - 1, 0, handle [i])
  超级列表框1.置标题 (i - 1, 2, “转换中”)
  _进入许可区 (许可证)
  线程数 = 线程数 + 1 ' 循环一次就让线程数增加1
  _退出许可区 (许可证)
  .判断循环首 (线程数 = 到整数 (编辑框线程数.内容))
    .如果真 (是否停止)
      跳出循环 ()
    .如果真结束
    延迟 (100) ' 延迟的目的是防止线程数超过设定数目。
  .判断循环尾 ()
.计次循环尾 ()
.子程序 _按钮暂停_被单击
.局部变量 cout, 整数型
.局部变量 i, 整数型
cout = 超级列表框1.取表项数 ()
.判断开始 (按钮暂停.标题 = “暂停”)
  是否暂停 = 真
  .计次循环首 (cout, i)
    线程_挂起 (handle [i])
  .计次循环尾 ()
  按钮暂停.标题 = “恢复”
.默认
  按钮暂停.标题 = “恢复”
  是否暂停 = 假
  .计次循环首 (cout, i)
    线程_恢复 (handle [i])
  .计次循环尾 ()
  按钮暂停.标题 = “暂停”
.判断结束
.子程序 _按钮停止_被单击
是否停止 = 真
按钮生成.禁止 = 真
.子程序 kgtemp转MP3, 字节集
.参数 文件路径, 文本型
.局部变量 key, 整数型, , "4"
.局部变量 文件号, 整数型
.局部变量 临时字节集文件, 字节集
.局部变量 临时字节集指针, 整数型
.局部变量 字节集长度, 整数型
.局部变量 计数, 整数型
.局部变量 i, 整数型
.局部变量 结果, 整数型
.局部变量 输出结果, 字节集
.局部变量 时间, 整数型
key [1] = 172
key [2] = 236
key [3] = 223
key [4] = 87
文件号 = 打开文件 (文件路径, , )
临时字节集文件 = 读入字节集 (文件号, 取文件长度 (文件号))
关闭文件 (文件号)
临时字节集文件 = 取字节集右边 (临时字节集文件, 取字节集长度 (临时字节集文件) - 1024)
临时字节集指针 = 取变量数据地址 (临时字节集文件)
字节集长度 = 取字节集长度 (临时字节集文件)
时间 = 取启动时间 ()
.计次循环首 (字节集长度, 计数)
  i = 计数 % 4
  .如果真 (i = 0)
    i = 4
  .如果真结束
  结果 = 位异或 (取低位 (临时字节集文件 [计数]), 取低位 (key [i]))
  结果 = 位或 (左移 (位异或 (取高位 (临时字节集文件 [计数]), 取高位 (key [i]), 结果), 4), 结果)
  写到内存 (取字节集左边 (到字节集 (结果), 1), 临时字节集指针 + 计数 - 1, 1)
.计次循环尾 ()
输出调试文本 (取启动时间 () - 时间)
返回 (临时字节集文件)
.子程序 MP3转kgtemp, 字节集
.参数 文件路径, 文本型
.局部变量 key, 整数型, , "4"
.局部变量 文件号, 整数型
.局部变量 临时字节集文件, 字节集
.局部变量 临时字节集指针, 整数型
.局部变量 字节集长度, 整数型
.局部变量 计数, 整数型
.局部变量 i, 整数型
.局部变量 结果, 整数型
.局部变量 输出结果, 字节集
.局部变量 时间, 整数型
key [1] = 172
key [2] = 236
key [3] = 223
key [4] = 87
文件号 = 打开文件 (文件路径, , )
临时字节集文件 = 读入字节集 (文件号, 取文件长度 (文件号))
关闭文件 (文件号)
临时字节集指针 = 取变量数据地址 (临时字节集文件)
字节集长度 = 取字节集长度 (临时字节集文件)
时间 = 取启动时间 ()
.计次循环首 (字节集长度, 计数)
  i = 计数 % 4
  .如果真 (i = 0)
    i = 4
  .如果真结束
  结果 = 位异或 (取高位 (临时字节集文件 [计数]), 取低位 (临时字节集文件 [计数]), 取高位 (key [i]))
  结果 = 位或 (左移 (结果, 4), 位异或 (取低位 (临时字节集文件 [计数]), 取低位 (key [i])))
  写到内存 (取字节集左边 (到字节集 (结果), 1), 临时字节集指针 + 计数 - 1, 1)
.计次循环尾 ()
输出调试文本 (取启动时间 () - 时间)
返回 (#head + 临时字节集文件)
.子程序 取高位, 整数型
.参数 待取整数, 整数型
返回 (右移 (待取整数, 4))
.子程序 取低位, 整数型
.参数 待取整数, 整数型
返回 (位与 (待取整数, 15))
.子程序 __启动窗口_将被销毁
_删除许可证 (许可证)

运行结果:

易语言怎么通过计算替换字节实现酷狗音乐缓存文件转MP3

关于“易语言怎么通过计算替换字节实现酷狗音乐缓存文件转MP3”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

推荐阅读:
  1. 怎么在python项目中使用beautifulsoup4爬取酷狗音乐
  2. python如何爬取酷狗音乐排行榜

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

易语言

上一篇:微信小程序中怎么自定义一个音乐进度条

下一篇:vue-video-player中怎么通过自定义按钮组件实现全屏切换效果

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》