读书人

怎么用perl给一个二进制文件加‘000A’

发布时间: 2012-06-14 16:00:31 作者: rapoo

如何用perl给一个二进制文件加‘000A’
有个二进制文件,没有换行符,我想每隔100个字符,加上'000A'换行标记

open (FDAT,$ARGV[0]) || die "error opening $ARGV[0]\n";

while (read(FDAT,$_,$totlen)) {

################## fill in the %s hash
$_=$_.'000A';
################ printout the %s hash;

print $_;

}

可是这样执行,文件没有变化。

[解决办法]
事情肯定能做,但还要考虑是否有意义!换行本身是属于文本文件的,也就是说文本文件才有换行的概念,二进制为什么要添加这个字符呢?

无论怎样,你可以读出来100个字节在加上换行,再写入文件。该操作不能在文件原地操作,可以先写一个新文件,在存为源文件名。

在perl中你需要pack和unpack来处理二进制。
[解决办法]
你根本就没写文件的操作。有变化就怪了。

读书人网 >perl python

热点推荐