|
分享源码
界面截图: |
|
是否带模块: |
- |
备注说明: |
- |
用于批量检测mp3文件是否存在卡碟音的损坏
使用了精益模块、Bass 2.4.5.0模块
代码如下,精益模块自行下载
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | hs | 整数型 | | data | 整数型 | 0 | BASS_Init (-1, 44100, 0, 取窗口句柄 (), 0 ) 功能_高表置表头 ({ “□”, “文件名”, “路径”, “检测值”, “操作” }, { 30, 200, 400, 100, 100 }, 高表_异常清单 )高表_异常清单. 置列类型 (0, #表格常量 .选择型 )局_路径 = 浏览文件夹 (“选择音频文件目录”, )如果 (局_路径 ≠ “”)编辑框_路径.内容 = 局_路径 按钮_开始.禁止 = 假 按钮_开始.禁止 = 真 如果真 (目录_是否存在 (编辑框_路径.内容 ) = 假)信息框 (“当前目录不存在,请选择正确的目录!”, 0, , )按钮_开始.禁止 = 真 _按钮_浏览_被单击 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_计次 | 整数型 | | | 局_int | 整数型 | | | 局_int2 | 整数型 | | |
局_int = 0 局_int2 = 0 计次循环首 (高表_异常清单.行数 - 1, 局_计次 )如果真 (高表_异常清单. 取数据 (局_计次, 0 ) = 真)如果 (文件_删除 (高表_异常清单. 取数据 (局_计次, 2 )) )高表_异常清单. 置数据 (局_计次, 4, #表格常量 .文本型, “删除成功”)局_int = 局_int + 1 高表_异常清单. 置数据 (局_计次, 4, #表格常量 .文本型, “删除失败”)高表_异常清单. 置单元格文字颜色 (局_计次, 0, 局_计次, 4, #红色 )局_int2 = 局_int2 + 1 处理事件 ()计次循环尾 ()编辑框_log. 加入文本 (“成功删除异常文件:” + 到文本 (局_int ) + “个” + #换行符 )编辑框_log. 加入文本 (“异常文件删除失败:” + 到文本 (局_int2 ) + “个” + #换行符 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_计次 | 整数型 | | | 局_int | 整数型 | | | 局_int2 | 整数型 | | | 局_异常目录 | 文本型 | | | 局_移动 | 逻辑型 | | | 如果 (目录_创建 (编辑框_路径.内容 + “\异常文件”)) 局_int = 0 局_int2 = 0 局_异常目录 = 编辑框_路径.内容 + “\异常文件\”计次循环首 (高表_异常清单.行数 - 1, 局_计次 )如果真 (高表_异常清单. 取数据 (局_计次, 0 ) = 真)局_移动 = 文件_移动 (高表_异常清单. 取数据 (局_计次, 2 ), 局_异常目录 + 高表_异常清单. 取数据 (局_计次, 1 )) 如果 (局_移动 = 真)高表_异常清单. 置数据 (局_计次, 4, #表格常量 .文本型, “移动成功”)局_int = 局_int + 1 高表_异常清单. 置数据 (局_计次, 4, #表格常量 .文本型, “移动失败”)高表_异常清单. 置单元格文字颜色 (局_计次, 0, 局_计次, 4, #红色 )局_int2 = 局_int2 + 1 处理事件 ()计次循环尾 ()编辑框_log. 加入文本 (“成功转移异常文件:” + 到文本 (局_int ) + “个” + #换行符 )编辑框_log. 加入文本 (“异常文件转移失败:” + 到文本 (局_int2 ) + “个” + #换行符 )编辑框_log. 加入文本 (“创建【异常文件】目录失败,无法完成移动” + #换行符 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_文件名 | 文本型 | | | 局_文件清单 | 文本型 | | 0 | 局_int | 整数型 | | | 局_路径 | 文本型 | | | 局_int2 | 整数型 | | | 局_检测结果 | 整数型 | | |
编辑框_log. 加入文本 (到文本 (取现行时间 ()) + “_开始扫描目录:” + 编辑框_路径.内容 + #换行符 )局_文件名 = 寻找文件 (编辑框_路径.内容 + “\*.*”, )判断循环首 (局_文件名 ≠ “”)加入成员 (局_文件清单, 局_文件名 )局_文件名 = 寻找文件 (, )处理事件 ()判断循环尾 ()局_int = 取数组成员数 (局_文件清单 )如果 (局_int = 0 )编辑框_log. 加入文本 (“当前目录没有文件” + #换行符 )信息框 (“当前为空目录,没有可检测的文件!”, 0, , )编辑框_log. 加入文本 (“当前目录共有文件:” + 到文本 (局_int ) + “个” + #换行符 )进度条1.最大位置 = 局_int 高表_异常清单.行数 = 1 计次循环首 (局_int, 局_int2 )局_路径 = 编辑框_路径.内容 + “\” + 局_文件清单 [局_int2 ]局_检测结果 = 功能_中断检测 (局_路径 )如果 (局_检测结果 = -1 ) 高表_异常清单. 插入行 (, )高表_异常清单. 置数据 (高表_异常清单.行数 - 1, 0, #表格常量 .选择型, 假) 高表_异常清单. 置数据 (高表_异常清单.行数 - 1, 1, #表格常量 .文本型, 局_文件清单 [局_int2 ]) 高表_异常清单. 置数据 (高表_异常清单.行数 - 1, 2, #表格常量 .文本型, 局_路径 ) 高表_异常清单. 置数据 (高表_异常清单.行数 - 1, 3, #表格常量 .文本型, “检测失败”) 高表_异常清单. 置单元格文字颜色 (高表_异常清单.行数 - 1, 0, 高表_异常清单.行数 - 1, 4, #红色 ) 如果真 (局_检测结果 ≥ 到整数 (编辑框_阀值.内容 )) 高表_异常清单. 插入行 (, )高表_异常清单. 置数据 (高表_异常清单.行数 - 1, 0, #表格常量 .选择型, 假) 高表_异常清单. 置数据 (高表_异常清单.行数 - 1, 1, #表格常量 .文本型, 局_文件清单 [局_int2 ]) 高表_异常清单. 置数据 (高表_异常清单.行数 - 1, 2, #表格常量 .文本型, 局_路径 ) 高表_异常清单. 置数据 (高表_异常清单.行数 - 1, 3, #表格常量 .文本型, 到文本 (局_检测结果 )) 进度条1.位置 = 局_int2处理事件 ()计次循环尾 ()编辑框_log. 加入文本 (“检测发现异常文件:” + 到文本 (高表_异常清单.行数 - 1 ) + “个” + #换行符 )如果 (高表_异常清单.行数 > 1 )按钮_删除.禁止 = 假 按钮_移动.禁止 = 假 按钮_删除.禁止 = 真 按钮_移动.禁止 = 真 变量名 | 类 型 | 静态 | 数组 | 备 注 | hs2 | 整数型 | | | time | 双精度小数型 | | | n | 整数型 | | | int | 整数型 | | | error | 整数型 | | | f1 | 逻辑型 | | | f2 | 逻辑型 | | | del | 整数型 | | 0 | 如果真 (参_文件名 ≠ “”)BASS_StreamFree (hs ) hs = BASS_StreamCreateFile (假, 参_文件名, 0, 0, 0 ) 如果 (hs = 0 ) 调试输出 (BASS_ErrorGetCode ()) 返回 (-1 )hs2 = BASS_StreamCreateFile (假, 参_文件名, 0, 0, #BASS_STREAM_DECODE ) time = BASS_ChannelBytes2Seconds (hs, BASS_ChannelGetLength (hs, #BASS_POS_BYTE )) 重定义数组 (data, 假, 取整 (time × 50 + 1 )) 计次循环首 (取数组成员数 (data ), n )int = BASS_ChannelGetLevel (hs2 ) 如果 (int ≠ -1 )data [n ] = int error = BASS_ErrorGetCode ()如果真 (error = #BASS_ERROR_ENDED 或 error = #BASS_ERROR_NOPLAY )删除成员 (data, n, 1 )处理事件 ()计次循环尾 ()BASS_StreamFree (hs2 ) f1 = 假 f2 = 假 int = 取数组成员数 (data )重定义数组 (del, 假, 0 )计次循环首 (int, n )如果真 (f1 = 假)如果 (data [n ] = 0 )加入成员 (del, n )f1 = 真 如果真 (f2 = 假)如果 (data [int + 1 - n ] = 0 )加入成员 (del, int + 1 - n )f2 = 真 如果真 (f1 = 真 且 f2 = 真)跳出循环 ()处理事件 ()计次循环尾 ()计次循环首 (取数组成员数 (del ), n )删除成员 (data, del [n ], 1 )处理事件 ()计次循环尾 () int = 0 计次循环首 (取数组成员数 (data ), n )如果真 (data [n ] = 0 )int = int + 1 处理事件 ()计次循环尾 ()调试输出 (“0值出现:”, int )返回 (int )返回 (-1)|
功能_高表置表头 | | | |
表头名称数组 | 文本型 | | | | 表头列宽数组 | 整数型 | | | | 高表 | 高级表格 | | | |
高表. 清空数据 ()高表.行数 = 1 高表.列数 = 取数组成员数 (表头名称数组 )如果 (是否为空 (表头列宽数组 ) = 真)高表.列宽 = 高表.宽度 ÷ 高表.列数 计次循环首 (取数组成员数 (表头列宽数组 ), i )高表. 置列宽 (i - 1, 表头列宽数组 [i ])计次循环尾 ()计次循环首 (取数组成员数 (表头名称数组 ), i )高表. 置数据 (0, i - 1, 1, 表头名称数组 [i ])计次循环尾 ()高表. 置对齐方式 (0, 0, , 高表.列数 - 1, 2 )|
_高表_异常清单_表头被单击 | 逻辑型 | | |
行号 | 整数型 | | | | 列号 | 整数型 | | | | 如果真 (行号 = 0 且 列号 = 0 )如果 (高表_异常清单. 取数据 (0, 0 ) = “□”)高表_异常清单. 置数据 (0, 0, #表格常量 .文本型, “
|
|