求助:怎样检验二进制文件中某个固定位置的值,如满足条件则替换另一位置的字符串(需批量处理)?
小弟需要一段VC程序,批量替换二进制文件中的字符串,可小弟对VC完全不熟,请高手帮忙!
要求:
在二进制文件中,检验某个固定位置的字符串,如大于等于某个值,就替换另一固定位置的字符串。由于是等长的字符串,不需要重新创建文件。
详细说明:
1,选择某个目录下的所有相同扩展名的文件,如*.dat;
2,避免误改其它扩展名相同但不属于此范围的文件,所以需对文件头进行判断,我需要修改的二进制文件的头几个字符是固定字符串,如23 1B 00 FF。如果是,进一步操作,不是则到下一文件;
3,找到需修改的文件后,到指定位置,如37H(即第56个字节)处,判断那个字节的值是否>=(大于等于)12;
4,如果是,则修改另一个指定位置的字符串,比如8CH(即第141个字节)处,检验其是否为9A,如果是,则由9A替换为9F;如果不是,则不作任何动作;
5,处理下一文件(但不进行重复的搜索/替换);
6,将修改过的文件的日期时间改为当前日期时间;
7,全部完成后,显示完成信息,返回。
希望给出完整的程序,如能给出说明就更好!
谢谢!