andersonljw 发表于 2011-2-13 10:57:00

请问如何对一个二进制流文件进行取反操作?

比如对一个test.dat文件(50M大小),用二进制方式打开,然后对每一位进行取反操作(即0变1,1变0),再将全部取反后的数据写成另一个文件test1.dat

是否要用数据结构?
烦劳大侠给予指点!!

mozha 发表于 2011-2-13 11:07:57

本帖最后由 mozha 于 2011-2-13 11:09 编辑

用二进制读出来,再用正则替换,不过文件太大了,可以考虑分成几段

andersonljw 发表于 2011-2-13 11:10:04

感谢,能否举个简单例子,再次感谢!

papapa314 发表于 2011-2-13 15:02:16

还没开始学正则,给个笨办法,先读取为一个字符窜,把0全部替换为2,再把1替换为0,最后把2替换为1,写入新文件中

3mile 发表于 2011-2-13 17:20:21

是这个意思?
#include <array.au3>

$file=FileOpen(@ScriptDir&"\aa.txt",16)
$read=FileRead($file)
FileClose($file)
$len=BinaryLen($read)
for $i=1 to $len
        $temp=BitNOT(BinaryMid($read,$i,1))
        msgbox(0,BinaryMid($read,$i,1),$temp)
Next
页: [1]
查看完整版本: 请问如何对一个二进制流文件进行取反操作?