免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 16345 | 回复: 11
打印 上一主题 下一主题

请问:如何读取文件的最后一行? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-24 14:24 |只看该作者 |倒序浏览
请问:在Windows环境下,怎么直接读取文件的最后一行的内容?因为文件很大,每行至少1024个字符,但是只有文件的最后一行才是我需要的。我用seek可以移到文件末尾,然后再用readline,但是内容是空。

论坛徽章:
0
2 [报告]
发表于 2005-08-24 15:01 |只看该作者

请问:如何读取文件的最后一行?

[quote]原帖由 "youhaorenshi"]请问:在Windows环境下,怎么直接读取文件的最后一行的内容?因为文件很大,每行至少1024个字符,但是只有文件的最后一行才是我需要的。我用seek可以移到文件末尾,然后再用readline,但是内容是空。[/quote 发表:



open (FILE,"file.txt" or die "$!";
my @arr=<FILE>;;
close FILE;
my $last=$arr[$#arr];

$last里就是最后一行的内容了。

论坛徽章:
0
3 [报告]
发表于 2005-08-24 15:13 |只看该作者

请问:如何读取文件的最后一行?

楼上的方法我也知道,但是要是一个文件几百兆,就太慢了。有没有别的方法了。或者有什么办法可以知道文件有多少行。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-08-24 15:17 |只看该作者

请问:如何读取文件的最后一行?

http://search.cpan.org/~mjd/Tie-File-0.96/lib/Tie/File.pm
DESCRIPTION ^

Tie::File represents a regular text file as a Perl array. Each element in the array corresponds to a record in the file. The first line of the file is element 0 of the array; the second line is element 1, and so on.

The file is not loaded into memory, so this will work even for gigantic files.

Changes to the array are reflected in the file immediately.

Lazy people and beginners may now stop reading the manual.

论坛徽章:
0
5 [报告]
发表于 2005-08-24 15:25 |只看该作者

请问:如何读取文件的最后一行?

[quote]原帖由 "youhaorenshi"]楼上的方法我也知道,但是要是一个文件几百兆,就太慢了。有没有别的方法了。或者有什么办法可以知道文件有多少行。[/quote 发表:

  1. open (FILE,"file.txt") or die "$!";
  2. while (<FILE>;)
  3. {
  4.     open (TMP,">;","tmp.txt") or die "$!";
  5.     print TMP $_;
  6.     close TMP;
  7. }
  8. close FILE;
复制代码


如上,用交换文件也可以,如果你内存有限的话。

论坛徽章:
0
6 [报告]
发表于 2005-08-24 17:12 |只看该作者

请问:如何读取文件的最后一行?

能不能配合shell的tail -1 file.txt来呢?在windows下也可以模拟个shell的

论坛徽章:
0
7 [报告]
发表于 2005-08-25 01:02 |只看该作者

请问:如何读取文件的最后一行?

打开文件,把指针移动到最后面,一个一个字节往前读,直到读到\N为止

论坛徽章:
0
8 [报告]
发表于 2005-08-25 03:33 |只看该作者

请问:如何读取文件的最后一行?

原帖由 "apile" 发表:
http://search.cpan.org/~mjd/Tie-File-0.96/lib/Tie/File.pm
DESCRIPTION ^

Tie::File represents a regular text file as a Perl array. Each element in the array corresponds to a record in the file. The..........

楼主试试这个

论坛徽章:
0
9 [报告]
发表于 2005-08-25 11:36 |只看该作者

请问:如何读取文件的最后一行?

open (FILE,"file.txt" ;
$a=<FILE>;;push(@a,$a);
while (<FILE>
{ push(@a,$_);
shift@a;
}
print @a;
close FILE;

论坛徽章:
0
10 [报告]
发表于 2005-08-26 14:24 |只看该作者

请问:如何读取文件的最后一行?

原帖由 "run309" 发表:
open (FILE,"file.txt" ;
$a=<FILE>;;push(@a,$a);
while (<FILE>
{ push(@a,$_);
shift@a;
}
print @a;
close FILE;



糊弄人啊~说明白点阿~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP