如何逐字块读取文件内容并保存?

如何逐字块读取文件内容并保存?

如何逐字块读取文件内容并保存?
我的文件共有3000多万个字符,我想以10为定长,从第0个字符开始读取,第一次读取第1-10个元素,保存,第二次读取2-11个元素。最后我要统计一下,每个字符串出现的次数。
我用read读文件,read(file,$bp,10,$begin)我把每次字符串保存在$bp,计数的时候用$result{"$bp"}+=1;外面用的是while(<file>)(像我这样,每次读一行的话,后面的read就应该有问题了),每次$begin++,结果和我计划的相差非常远,刚开始用perl大家帮帮忙吧。谢谢了,我也试试其他方法。
while (!eof (FILE)).
这句话的意思是不是读到文.
作者提供的相关的附件(大小:1 K)

这句话的意思是不是读到文件的结束啊?是不是就不是逐行读取啊?

我要处理的数据类似附件中的数据:

各位高手,我修改了一下
while (!eof (file))
{

seek(file,$begin,0);
read(file,$bp,10,0);

print "$bp\n";
$result{"$bp[$begin]"}+=1;
++$begin;
}
排序比较规则,但是发现,每行最后都有一个空格,而且有一个换行符,他们也被当成字符,应该怎么去除啊。再次感谢各位大侠。




   

最简单的办法--把文件按.
最简单的办法
把文件按行读入,去除换行附保存到临时文件,在对临时文件处理
楼主是想统计每个字符的出.
楼主是想统计每个字符的出现次数,还是统计单词的出现次数?
如果是统计字符的话可以:
[quote]
%ch;
while (<>){
s/\r?\n//;
$ch{$w}++ foreach my $w (split //);
}
[/quote]
以上代码未测试.思路就是按行读取,然后把字符分割放在一个数组,然后遍历这个数组的各个元素,即是各个字符.再用一个HASH以字符为KEY,把它们保存起来.值就是这些字符出现的次数.
如果楼主是要统计单词的话,考虑一下如何分词就OK啦...
谢谢大家
我处理的对象是基因组数据,我想看看各中长度简单重复序列出现的次数。
我用的是比较笨的方法,就是poseidon的方法,把每句chomp一下,拼起来处理,beckheng的代码真牛啊,我以前用C,VB,C++,看到这种perl程序真的很激动啊,简直,简直乱其八糟啊,呵呵。
以后我计算基因组组成的时候会借鉴一下的。
再次谢谢各位。
Perl 代码可以变成一行,也可以长篇大论。呵呵:)
不过在生物方向,Perl可真是强哦。:P
谁让我是新手呢?^_^--?
谁让我是新手呢?^_^(我想新手都比较喜欢这种东东吧)

现在文件比较小,当文件比较大的时候,文件变成一行会不会有问题啊?