【求助】一个WAV文件头的问题,有空的朋友帮忙写个小程序,谢谢

avenger 2005-04-07 07:37:21
一个保存公司电话录音的硬盘误格式化,通过恢复软件,找回了一部分数据。皆为wav格式,不过头文件好像已经被损坏了,不能播放。

经测试把目前文件的前三行(用UltraEdit-32打开后)用WAV头部覆盖后可以正常播放。见附图所示,不过目前文件有上万个,不可能一个一个去换。

希望哪个朋友有空能帮个忙写个批处理,能够自动遍历当前目录下的所有wav文件,并把头部三行替换成附件中的头文件就行了。

万分感谢。

附件链接:http://www.d4e.org/attachment.php?attachmentid=88041
...全文
214 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rushinger 2005-04-10
  • 打赏
  • 举报
回复
用CFileFind搜索一个指定的文件夹,对扩展名为wav的执行以上代码。其中strSourceFile为CFindFind找到的wav文件路径,strTempFile为由strSourceFile合成的、同路径下的临时文件名,比如
strTempFile = strSourceFile + ".tmp";
rushinger 2005-04-10
  • 打赏
  • 举报
回复
sourceFile.Close();
tempFile.Close();

DeleteFile(strSourceFile);
rename(strTempFile, strSourceFile);

rushinger 2005-04-10
  • 打赏
  • 举报
回复
byte header[42] = {0x52, 0x49, 0x46, 0x46, 0x34, 0x40, 0x06, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20, 0x14, 0x0, 0x0, 0x0, 0x11, 0x0, 0x1, 0x0, 0x40, 0x1F, 0x0, 0x0, 0xD7, 0x0F, 0x0, 0x0, 0x0, 0x01, 0x04, 0x0, 0x02, 0x0, 0xF9, 0x01, 0x66, 0x61, 0x63, 0x74, 0x04};
byte buffer[42];
DWORD dwRead = 0;
BOOL bResult
CFileException ex;
CFile sourceFile;
CFile tempFile;
bResult = sourceFile.Open(strSourceFile, CFile::modeRead | CFile::shareDenyNone | CFile::typeBinary, &ex);
bResult = tempFile.Open(strTempFile, CFile::modeWrite | CFile::shareExclusive | CFile::typeBinary | CFile::modeCreate, &ex);
tempFile.Write(header, 42);
sourceFile.Read(buffer, 42);

do
{
dwRead = sourceFile.Read(buffer, 42);
tempFile.Write(header, dwRead);
}while(dwRead > 0);

DeleteFile(strSourceFile);
rename(strTempFile, strSourceFile);
avenger 2005-04-10
  • 打赏
  • 举报
回复
感谢DRL的billholt帮忙,问题已完美解决,修复程序已经上传到 www.phpe.net/WaveRepair.zip 两天后删除,结贴,感谢所有关注的朋友。
avenger 2005-04-09
  • 打赏
  • 举报
回复
已上传到 http://www.phpe.net/WAV.rar 谢谢帮忙
ycom__net 2005-04-08
  • 打赏
  • 举报
回复
查一下命令,然后照猫画虎,

是在不行,上网搜下,应该挺多得

avenger 2005-04-08
  • 打赏
  • 举报
回复
up
源码直接下载地址: https://pan.quark.cn/s/387d7c8f6289 在使用IE浏览器的过程中,偶尔会出现重置为默认配置操作未能顺利完成的现象。这种情况的发生可能源于多种因素,包括注册表项出现偏差、浏览器附加组件之间存在不兼容、操作系统授权设置不当或受到恶意程序影响等。针对这一挑战,我们可以通过一系列系统性的方法来逐一诊断和纠正。首先需要验证当前用户是否具备管理员级别的操作权限。在执行重置配置的操作时,必须确保IE浏览器是以管理员身份启动的。具体操作方式为,使用鼠标右键单击IE程序图标,并从弹出的菜单中选择“以管理员身份运行”这一选项。其次,应当检查是否存在恶意软件。恶意程序有时会非法修改浏览器的配置信息,从而阻碍重置过程的正常进行。用户可以借助Windows系统自带的Microsoft Safety Scanner进行检测,或者选择安装并使用第三方安全防护软件执行全面的系统扫描。紧接着,需要对浏览器的缓存数据以及Cookies文件进行清理。在IE浏览器界面中,通过访问“工具”菜单并选择“Internet选项”,然后在弹出的设置界面中,切换至“常规”标签页,并执行清除浏览历史记录的操作,此过程应包含Cookies和临时互联网文件。倘若上述步骤均未能解决问题,那么可以考虑禁用或移除那些可能引发冲突的浏览器附加组件。相关操作需要在“工具”菜单下找到并打开“管理加载项”,对可疑的插件进行禁用处理,并在浏览器重新启动后再次尝试执行重置操作。再者,修复IE浏览器相关的注册表配置也是至关重要的环节。注册表编辑器是一个功能强大的系统工具,任何不当的操作都可能导致严重的系统问题,因此在进行修改前必须创建系统还原点作为安全备份。用户可以通过按下“Win+R”组合...

15,445

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧