- 论坛徽章:
- 0
|
请教各位
我有一二进制文件需要编辑,例如该二进制文件的内容如下: 01 02 03 04 05 97 02 08 11 12 13 14 97 02 08 33 44 55 66 我需要将里面的97 02 08 改成 97 02 01 。
我参考了以前的帖子,学会了二进制文件的读,但是不知道如何将读出的内容与我需要的内容比较,例如if($buffer == 0x97),我知道这里这么比较是不对的, 因为$buffer是字符,所以想请教应该怎么判断。另外怎么付值呢?比如把08改成01($buffer = 0x01;),我知道这个也不对,因为这样付值后$buffer 变成1的ASCII码31了,写入文件后就不是0x01而变成了0x31。那位知道的麻烦指点一下,谢谢。
while(read(INP, $buffer, 1)) {
if($buffer == 0x97) {
syswrite(OUT, $buffer, length($buffer));
read(INP, $buffer, 1);
if($buffer == 0x02){
syswrite(OUT, $buffer, length($buffer));
print "$buffer";
read(INP, $buffer, 1);
$buffer = 0x01;
}
}
syswrite(OUT, $buffer, length($buffer));
} |
|