免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: raoweijian
打印 上一主题 下一主题

读取文件如何接着上一次的进度 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-06-03 16:10 |只看该作者
谢谢大家的帮助,已经改好了。
用tell和seek,加了一点修改就好啦

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
12 [报告]
发表于 2013-06-03 20:37 |只看该作者
不会从头读取啦~

论坛徽章:
0
13 [报告]
发表于 2013-06-03 21:27 |只看该作者
回复 5# raoweijian


    你那两个while不就是先在IF1里读取一行处理,然后在IF2里读取一行处理,再从IF1读取一行这样循环下去的吗?真没搞懂为什么你觉得IF2每次从头读取了。另外一种简单点的写法可以这样写:
  1. while (<IF1>) {
  2.   my $line2 = <IF2>;
  3.   ...
  4. }
复制代码

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
14 [报告]
发表于 2013-06-03 21:37 |只看该作者
picbhan 发表于 2013-06-03 17:27
回复 5# raoweijian
学习了!,以前没注意到这种写法。
sinian126 该用户已被删除
15 [报告]
发表于 2013-06-04 10:37 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
16 [报告]
发表于 2013-06-04 11:29 |只看该作者
本帖最后由 raoweijian 于 2013-06-04 11:30 编辑

回复 15# sinian126
  1. #!usr/bin/perl -w
  2. use strict;
  3. my $if = shift;
  4. open IF,"<$if";
  5. open INFO,"<message.info";
  6. open OF,">$if.scaffold";

  7. my $tell = 0;
  8. while(<IF>){
  9.     next if (/^#/);
  10.     chomp;
  11.     my @t = split;
  12.     seek(INFO,$tell,0);
  13.     while(<INFO>){
  14.         chomp;
  15.         my @c = split;
  16. #       my $c = @c;print "$c\n";
  17.         next if(!defined($c[7]));
  18.         if(($c[1] <= $t[1]) && ($c[2] >= $t[1])){
  19.             $t[0] = $c[4];
  20.             $t[1] = $t[1] - $c[1] + $c[5];
  21.             for my $i (0..8){
  22.                 print OF "$t[$i]\t";
  23.             }
  24.             print OF "$t[9]\n";
  25.             $tell = tell(INFO) - 1000;
  26.             last;
  27.         }
  28.     }
  29. }
复制代码

论坛徽章:
0
17 [报告]
发表于 2013-06-04 17:38 |只看该作者
同意楼上各位大侠说的 tell + seek,然后把读到的位置记录到某个文件中,下次先读文件中的位置

论坛徽章:
0
18 [报告]
发表于 2013-06-04 17:52 |只看该作者
rubyish 发表于 2013-06-03 21:37
学习了!,以前没注意到这种写法。


你会没见过这种写法?酱油打得太明显了

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
19 [报告]
发表于 2013-06-04 19:06 |只看该作者
没搞懂为什么 LZ 觉得每次从头读取了

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
20 [报告]
发表于 2013-06-04 19:13 |只看该作者
回复 18# picbhan

以前没注意到,希望以前 you 见过
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP