免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1587 | 回复: 9

关于进度条的问题 [复制链接]

论坛徽章:
0
发表于 2013-05-10 16:16 |显示全部楼层
今天看到以前的一个贴子,都是在程序中添加的进度条的代码,我想问问这些代码是怎么和自己的程序联系起来的?
  1. #!/usr/bin/perl -w
  2. # Author: Zhao
  3. # Date: 2009.12.22
  4. # Purpose: simulate the progress bar

  5. $n = 30;
  6. for($i=1;$i<=$n;$i++){
  7.         proc_bar($i,$n);
  8.         select(undef, undef, undef, 0.2);
  9. }
  10. <STDIN>;

  11. sub proc_bar{
  12.         local $| = 1;
  13.         my $i = $_[0] || return 0;
  14.         my $n = $_[1] || return 0;
  15.         print   "\r [ ".("\032" x int(($i/$n)*50)).(" " x (50 - int(($i/$n)*50)))." ] ";
  16.         printf("%2.1f %%",$i/$n*100);
  17.         local $| = 0;
  18. }
复制代码
比如这样的一个进度条程序,他是怎么知道我的程序跑了多少,或者说需要多久能跑完的。。并且正常的显示进度?
希望知道的告诉小弟下。。。。
没怎么看过这方面的东西。。。如果这问题提的有点弱智了。。也请提醒下。。谢谢。。。

论坛徽章:
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
发表于 2013-05-13 13:56 |显示全部楼层
联系起来:
  1. $n = 30;
  2. for($i=1;$i<=$n;$i++){
  3.         # select(undef, undef, undef, 0.2);
  4.         dosomething
  5.         proc_bar($i,$n);
  6. }
复制代码
or
  1. my @data = <DATA>;
  2. my ( $i, $n ) = ( 1, scalar @data );
  3. for (@data) {
  4.     dosomething;
  5.     proc_bar( $i++, $n );
  6. }
复制代码

论坛徽章:
0
发表于 2013-05-15 14:01 |显示全部楼层
谢谢,我看看回复 2# rubyish


   
sinian126 该用户已被删除
发表于 2013-05-15 15:35 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
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
发表于 2013-05-15 15:49 |显示全部楼层
sinian126 发表于 2013-05-15 11:35
我不会用进度条
我一般写完程序看看文件一共多少行假如一共1000行
然后执行完一行 定一个$i++

绝妙的好主意!
为什么我以前就没有想到呢?
非常感谢!{:3_188:} {:3_188:}

论坛徽章:
0
发表于 2013-05-16 13:07 |显示全部楼层
good idea, thanks回复 4# sinian126


   

论坛徽章:
0
发表于 2013-05-16 15:28 |显示全部楼层
回复 4# sinian126


    如果不知道文件多少行呢?

论坛徽章:
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
发表于 2013-05-17 17:01 |显示全部楼层
picbhan 发表于 2013-05-16 11:28
回复 4# sinian126

sinian126 : 我一般写完程序看看文件一共多少行假如一共1000行

论坛徽章:
0
发表于 2013-05-17 18:41 |显示全部楼层
回复 8# rubyish


    进度条显示的一般是你要处理的文件而不是代码文件吧,很多时候应该不知道要处理的文件有多少行,除非处理之前先去检查有多少行。用文件大小和已处理的数据大小来粗略估计进度是不是更方便点呢?

论坛徽章:
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
发表于 2013-05-18 17:48 |显示全部楼层
picbhan 发表于 2013-05-17 14:41
回复 8# rubyish
很多时候应该不知道要处理的文件有多少行,除非处理之前先去检查有多少行。

sinian126 : 我一般写完程序看看文件一共多少行假如一共1000行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP